mirror of
https://github.com/Microsoft/sql-server-samples.git
synced 2025-12-08 14:58:54 +00:00
BIN
Binary file not shown.
|
Before Width: | Height: | Size: 87 KiB |
BIN
Binary file not shown.
|
Before Width: | Height: | Size: 26 KiB |
BIN
Binary file not shown.
|
Before Width: | Height: | Size: 89 KiB |
BIN
Binary file not shown.
|
Before Width: | Height: | Size: 97 KiB |
@@ -1,16 +1,17 @@
|
|||||||
## Run this sample
|
## Run this sample
|
||||||
Note: Run this project on a machine joined to a domain that is federated with Azure Active Directory. A contained database user representing your Azure AD principal, or one of the groups, you belong to, must exist in the database and must have the CONNECT permission.
|
Note: Run this project on a machine joined to a domain that is federated with Microsoft Entra. A contained database user representing your Microsoft Entra ID principal, or one of the groups, you belong to, must exist in the database and must have the CONNECT permission.
|
||||||
|
|
||||||
1. Before building and running the Integrated project:
|
1. Before building and running the Integrated project:
|
||||||
|
|
||||||
+ In Program.cs, locate the following lines of code and replace the server/database name with your server/database name.
|
+ In Program.cs, locate the following lines of code and replace the server/database name with your server/database name.
|
||||||
```
|
```
|
||||||
builder["Data Source"] = "aad-managed-demo.database.windows.net "; // replace 'aad-managed-demo' with your server name
|
builder["Data Source"] = "<server name>.database.windows.net "; // replace '<server name>' with your server name
|
||||||
builder["Initial Catalog"] = "demo"; // replace with your database name
|
builder["Initial Catalog"] = "demo"; // replace with your database name
|
||||||
```
|
```
|
||||||
|
|
||||||
2. The builder["Authentication"] method must be set to SqlAuthenticationMethod.ActiveDirectoryIntegrated;
|
2. The `builder["Authentication"]` method must be set to `SqlAuthenticationMethod.ActiveDirectoryIntegrated`;
|
||||||
![screenshot of visual studio showing builder fields to change] (/samples/features/security/azure-active-directory-auth/img/vs-authentication-method-integrated.png)
|
|
||||||
|
|
||||||
3. Running this project on a machine joined to a domain that is federated with Azure Active Directory will automatically use your Windows credentials and no password is required. The execution window will indicate a successful connection to the database followed by “Please press any key to stop”:
|

|
||||||
![screenshot of application after successful authentication- "press any key to stop"] (/samples/features/security/azure-active-directory-auth/img/integrated-press-any-key-to-stop.png)
|
|
||||||
|
3. Running this project on a machine joined to a domain that is federated with Microsoft Entra will automatically use your Windows credentials and no password is required. The execution window will indicate a successful connection to the database followed by “Please press any key to stop”:
|
||||||
|

|
||||||
|
|||||||
@@ -3,20 +3,17 @@
|
|||||||
**Before building and running the Password project**:
|
**Before building and running the Password project**:
|
||||||
1. In Program.cs, locate the following lines of code and replace the server/database name with your server/database name.
|
1. In Program.cs, locate the following lines of code and replace the server/database name with your server/database name.
|
||||||
```
|
```
|
||||||
builder["Data Source"] = "aad-managed-demo.database.windows.net "; // replace 'aad-managed-demo' with your server name
|
builder["Data Source"] = "<servername>.database.windows.net "; // replace '<servername>' with your server name
|
||||||
builder["Initial Catalog"] = "demo"; // replace with your database name
|
builder["Initial Catalog"] = "demo"; // replace with your database name
|
||||||
```
|
```
|
||||||
2. Locate the following line of code and replace username, with the name of the Azure AD user you want to connect as.
|
2. Locate the following line of code and replace username, with the name of the Microsoft Entra ID user you want to connect as.
|
||||||
```
|
```
|
||||||
string username = "bob@cqclinic.onmicrosoft.com"; // replace with your username
|
string username = "bob@contoso.com"; // replace with your username
|
||||||
```
|
```
|
||||||
Note: A contained user database must exist and a contained database user representing the specified Azure AD user or one of the groups, the specified Azure AD user belongs to, must exist in the database and must have the CONNECT permission (except for AAD server admin or group)
|
Note: A contained user database must exist and a contained database user representing the specified Microsoft Entra ID user or one of the groups, the specified Microsoft Entra ID user belongs to, must exist in the database and must have the CONNECT permission (except for AAD server admin or group)
|
||||||
|
|
||||||
Please note that
|
Please note that the `builder["Authentication"]` method is set to `SqlAuthenticationMethod.ActiveDirectoryPassword`.
|
||||||
builder["Authentication"] method is set to SqlAuthenticationMethod.ActiveDirectoryPassword.
|
|
||||||
|
|
||||||
![screenshot of visual studio showing builder fields to change] (/samples/features/security/azure-active-directory-auth/img/vs-authentication-method-password.png)
|
When running this program an execution window a prompt for the Microsoft Entra ID password request for user bob@cqclinic.onmicrosoft.com will appear. Once the password is entered the message should indicate a successful connection to the database followed by “Please press any key to stop”:
|
||||||
|
|
||||||
When running this program an execution window a prompt for the Azure AD password request for user bob@cqclinic.onmicrosoft.com will appear. Once the password is entered the message should indicate a successful connection to the database followed by “Please press any key to stop”:
|

|
||||||
|
|
||||||
![screenshot of application after successful authentication- "press any key to stop"] (/samples/features/security/azure-active-directory-auth/img/pwd-press-any-key-to-stop.png)
|
|
||||||
|
|||||||
@@ -35,16 +35,15 @@ To run this sample, you need the following prerequisites:
|
|||||||
+ ADALSQL.DLL enables applications to authenticate to Microsoft Azure SQL Database using Azure Active Directory. The ADALSQL.DLL is not installed with Visual Studio so download the DLL at http://www.microsoft.com/en-us/download/details.aspx?id=48742
|
+ ADALSQL.DLL enables applications to authenticate to Microsoft Azure SQL Database using Azure Active Directory. The ADALSQL.DLL is not installed with Visual Studio so download the DLL at http://www.microsoft.com/en-us/download/details.aspx?id=48742
|
||||||
+ ADALSQL.DLL is automatically downloaded with Visual Studio 2015 Update 2, SQL Server Management Studio, and the newest version of SQL Server Data tools
|
+ ADALSQL.DLL is automatically downloaded with Visual Studio 2015 Update 2, SQL Server Management Studio, and the newest version of SQL Server Data tools
|
||||||
|
|
||||||
1. Create Azure Active Directory (AD), or federate your domain with existing Azure AD
|
1. Create Microsoft Entra tenant (formerly known as Azure Active Directory), or federate your domain with existing Microsoft Entra ID. This allows either to use managed or federated accounts associated with a specific Microsoft Entra ID.
|
||||||
This allows either to use managed or federated accounts associated with a specific Azure AD
|
2. Create Microsoft Entra ID administrator for Azure SQL Database using the Azure portal, PowerShell command, or Rest API.
|
||||||
2. Create Azure AD administrator for Azure SQL DB using Azure portal, PowerShell command or Rest API
|
3. With help from T-SQL query interface (i.e. SSMS query editor), using Microsoft Entra ID admin credentials for Azure SQL Database and dedicated SQL pools in Azure Synapse, create an Microsoft Entra ID user in a designated database. The database user represents your Microsoft Entra ID principal (or one of the groups you belong to) and must exist in the database having CONNECT permission prior to executing a connection attempt.
|
||||||
3. With help from T-SQL query interface (i.e. SSMS query editor), using Azure AD admin credentials for SQL DB & SQL DW, create an Azure AD user in a designated database. The database user represents your Azure AD principal (or one of the groups you belong to) and must exist in the database having CONNECT permission prior to executing a connection attempt
|
|
||||||
|
|
||||||
|
|
||||||
**Other Prerequisites**
|
**Other Prerequisites**
|
||||||
|
|
||||||
1. For Azure AD integrated authentication a computer joined to a domain that is federated with Azure Active Directory is required
|
1. For Microsoft Entra ID integrated authentication a computer joined to a domain that is federated with Azure Active Directory is required.
|
||||||
2. An existing database created before a connection attempt is required. The database can be created using credentials for SQL administrator, or Azure AD SQL administrator
|
2. An existing database created before a connection attempt is required. The database can be created using credentials for SQL administrator, or Microsoft Entra SQL administrator.
|
||||||
|
|
||||||
<a name=run-this-sample></a>
|
<a name=run-this-sample></a>
|
||||||
|
|
||||||
@@ -62,7 +61,7 @@ To run this sample, you need the following prerequisites:
|
|||||||
|
|
||||||
## Sample details
|
## Sample details
|
||||||
|
|
||||||
This demo provides a simple tool for exploring Azure Active Directory authentication to Azure SQL DB or Azure SQL DW.
|
This demo provides a simple tool for exploring Azure Active Directory authentication to Azure SQL Database and dedicated SQL pools in Azure Synapse.
|
||||||
|
|
||||||
Azure Active Directory authentication with Azure SQL Database V12 supports the following authentication methods:
|
Azure Active Directory authentication with Azure SQL Database V12 supports the following authentication methods:
|
||||||
- User/password authentication
|
- User/password authentication
|
||||||
|
|||||||
@@ -8,22 +8,22 @@
|
|||||||
|
|
||||||
## About this sample
|
## About this sample
|
||||||
|
|
||||||
The Token project contains a simple console application that connects to Azure SQL database using a self-signed certificate.
|
The Token project contains a simple console application that connects to Azure SQL Database using a self-signed certificate.
|
||||||
|
|
||||||
**Software prerequisites:**
|
**Software prerequisites:**
|
||||||
|
|
||||||
1. The `makecert.exe` utility, which is included in the Windows SDK
|
1. The `makecert.exe` utility, which is included in the Windows SDK
|
||||||
+ It is sometimes included in Visual Studio installations (depending on the selections made during installation). A search of your machine for `makecert.exe` would provide verification that the Windows SDK was installed.
|
+ It is sometimes included in Visual Studio installations (depending on the selections made during installation). A search of your machine for `makecert.exe` would provide verification that the Windows SDK was installed.
|
||||||
+ If the Windows SDK was not installed, you may [download it here](http://msdn.microsoft.com/en-US/windows/desktop/aa904949)
|
+ If the Windows SDK was not installed, you may [download it here](https://learn.microsoft.com/windows/apps/windows-app-sdk/downloads)
|
||||||
+ You can learn more about the `makecert.exe` [utility here](https://msdn.microsoft.com/library/windows/desktop/aa386968.aspx)
|
+ You can learn more about the `makecert.exe` [utility here](https://msdn.microsoft.com/library/windows/desktop/aa386968.aspx)
|
||||||
2. PowerShell with Azure Active Directory Module
|
2. PowerShell with Azure Active Directory Module
|
||||||
+ To download the latest PowerShell version [see this page](https://azure.microsoft.com/en-us/documentation/articles/powershell-install-configure/#Install)
|
+ To download the latest PowerShell version [see this page](https://learn.microsoft.com/powershell/azure/install-azure-powershell)
|
||||||
+ [Install the Azure AD PowerShell Module](https://msdn.microsoft.com/en-us/library/azure/jj151815.aspx), if it is not already installed in your client machine.
|
+ [Install the Microsoft Entra ID PowerShell Module](https://learn.microsoft.com/powershell/entra-powershell/installation), if it is not already installed in your client machine.
|
||||||
|
|
||||||
<a name=run-this-sample></a>
|
<a name=run-this-sample></a>
|
||||||
## Run this sample
|
## Run this sample
|
||||||
|
|
||||||
1. Create an application account in Azure AD for your service.
|
1. Create an application account in Microsoft Entra ID for your service.
|
||||||
- Sign in to the Azure management portal.
|
- Sign in to the Azure management portal.
|
||||||
- Click on Azure Active Directory in the left hand navigation
|
- Click on Azure Active Directory in the left hand navigation
|
||||||
- Click the directory tenant where you wish to register the sample application. This must be the same directory that is associated with your database (the server hosting your database).
|
- Click the directory tenant where you wish to register the sample application. This must be the same directory that is associated with your database (the server hosting your database).
|
||||||
@@ -31,16 +31,15 @@ The Token project contains a simple console application that connects to Azure S
|
|||||||
- In the drawer, click Add.
|
- In the drawer, click Add.
|
||||||
- Click "Add an application my organization is developing".
|
- Click "Add an application my organization is developing".
|
||||||
- Enter mytokentest as a friendly name for the application, select "Web Application and/or Web API", and click next.
|
- Enter mytokentest as a friendly name for the application, select "Web Application and/or Web API", and click next.
|
||||||
- Assuming this application is a daemon/service and not a web application, it doesn't have a sign-in URL or app ID URI. For these two fields, enter http://mytokentest
|
- Assuming this application is a daemon/service and not a web application, it doesn't have a sign-in URL or app ID URI. For these two fields, enter `http://mytokentest`
|
||||||
- While still in the Azure portal, click the Configure tab of your application.
|
- While still in the Azure portal, select Configure in your application.
|
||||||
- Find the Client ID value and copy it into a text editor, you will need this later when configuring your application ( i.e. a4bbfe26-dbaa-4fec-8ef5-223d229f647d /see the snapshot below/)
|
- Find the Client ID value and copy it into a text editor, you will need this later when configuring your application
|
||||||

|
|
||||||
|
|
||||||
2. Logon to your Azure SQL Server’s user database as an Azure AD admin and using a T-SQL command provision a contained database user for your application principal:
|
2. Logon to your Azure SQL Server’s user database as an Microsoft Entra ID admin and using a T-SQL command provision a contained database user for your application principal:
|
||||||
```sql
|
```sql
|
||||||
CREATE USER [mytokentest] FROM EXTERNAL PROVIDER
|
CREATE USER [mytokentest] FROM EXTERNAL PROVIDER
|
||||||
```
|
```
|
||||||
- [See this link](https://azure.microsoft.com/en-us/documentation/articles/sql-database-aad-authentication/) for more details on how to create an Azure Ad admin and a contained database user.
|
- [See this link](https://azure.microsoft.com/documentation/articles/sql-database-aad-authentication/) for more details on how to create an Microsoft Entra ID admin and a contained database user.
|
||||||
|
|
||||||
3. On the machine you are going to run the project on, generate and install a self-signed certificate.
|
3. On the machine you are going to run the project on, generate and install a self-signed certificate.
|
||||||
- To complete this step, you will need to use `Makecert.exe`
|
- To complete this step, you will need to use `Makecert.exe`
|
||||||
@@ -53,10 +52,10 @@ The Token project contains a simple console application that connects to Azure S
|
|||||||
```
|
```
|
||||||
c:/"Program Files (x86)/Windows Kits/8.1/bin/x64"/makecert -r -pe -n "CN=mytokentestCert" -ss My -len 2048 mytokentestCert.cer
|
c:/"Program Files (x86)/Windows Kits/8.1/bin/x64"/makecert -r -pe -n "CN=mytokentestCert" -ss My -len 2048 mytokentestCert.cer
|
||||||
```
|
```
|
||||||
4. Add the certificate as a key for the application you created in Azure AD.
|
4. Add the certificate as a key for the application you created in Microsoft Entra ID.
|
||||||
- Click the Microsoft Azure Active Directory Module for Windows PowerShell shortcut on desktop to open a Windows PowerShell workspace that has the Azure AD cmdlets.
|
- Click the Microsoft Azure Active Directory Module for Windows PowerShell shortcut on desktop to open a Windows PowerShell workspace that has the Microsoft Entra ID cmdlets.
|
||||||
- Copy the following code snippet to a text editor.
|
- Copy the following code snippet to a text editor.
|
||||||
- `connect-msolservice` will ask for you Azure AD credentials. Please be sure to use credentials that are part of Azure AD global admin to connect and to proceed with the scripts below.
|
- `connect-msolservice` will ask for you Microsoft Entra ID credentials. Please be sure to use credentials that are part of Microsoft Entra ID global admin to connect and to proceed with the scripts below.
|
||||||
```
|
```
|
||||||
connect-msolservice
|
connect-msolservice
|
||||||
|
|
||||||
@@ -74,23 +73,21 @@ The Token project contains a simple console application that connects to Azure S
|
|||||||
|
|
||||||
5. Configure the certificate and your application account in the *app.config* file in the project.
|
5. Configure the certificate and your application account in the *app.config* file in the project.
|
||||||
+ In Visual Studio, open *app.config* in the Solution Explorer
|
+ In Visual Studio, open *app.config* in the Solution Explorer
|
||||||

|
|
||||||
- Find the app key `ida:Tenant` and replace the value with your AAD tenant name (your AAD domain)
|
- Find the app key `ida:Tenant` and replace the value with your AAD tenant name (your AAD domain)
|
||||||
- Find the app key `ida:ClientID` and replace the value with the Client ID for the application registration from the Azure Portal (the value from step 1).
|
- Find the app key `ida:ClientID` and replace the value with the Client ID for the application registration from the Azure Portal (the value from step 1).
|
||||||
- Find the app key `ida:Cert_Name` and replace the value with the subject name (CN) of the self-signed certificate you created
|
- Find the app key `ida:Cert_Name` and replace the value with the subject name (CN) of the self-signed certificate you created
|
||||||
- For example:
|
- For example:
|
||||||
```csharp
|
```csharp
|
||||||
<add key="ida:Tenant" value="cqclinic.onmicrosoft.com" /> //this is the AAD domain
|
<add key="ida:Tenant" value="<tenant name>" /> //this is the domain
|
||||||
<add key="ida:ClientId" value="a4bbfe26-dbaa-4fec-8ef5-223d229f647d"/> //this is the Client ID
|
<add key="ida:ClientId" value="<client id>"/> //this is the Client ID
|
||||||
<add key="ida:CertName" value="CN=mytokentestCert"/> //this is the Cert_name use by makecert.exe
|
<add key="ida:CertName" value="CN=mytokentestCert"/> //this is the Cert_name use by makecert.exe
|
||||||
```
|
```
|
||||||
+ In Visual Studio, open *Program.cs* in the Solution Explorer
|
+ In Visual Studio, open *Program.cs* in the Solution Explorer
|
||||||

|

|
||||||
- Make the following changes:
|
- Make the following changes:
|
||||||
```csharp
|
```csharp
|
||||||
builder["Data Source"] = "aad-managed-demo.database.windows.net"; // replace with your server name
|
builder["Data Source"] = "<server name>.database.windows.net"; // replace <server name> with your server name
|
||||||
builder["Initial Catalog"] = "demo"; // replace with your database name
|
builder["Initial Catalog"] = "demo"; // replace with your database name
|
||||||
```
|
```
|
||||||
6. Run the demo. (Click *Run* or press *F5*)
|
6. Run the demo. (Select *Run* or press *F5*)
|
||||||
+ A successful authorization should result in a message that states "Connected to the database" similar to the following:
|
+ A successful authorization should result in a message that includes "The access token obtained" and states "Connected to the database" and "Please press any key to stop".
|
||||||

|
|
||||||
|
|||||||
Reference in New Issue
Block a user