我在Service fabric集羣中部署了服務結構應用程序(無狀態和全狀態)。我正試圖在應用程序中實現安全性。該應用程序使用Active Directory認證庫(ADAL)從Azure AD使用OAuth 2.0客戶端憑證流獲取令牌,其中客戶端憑證是密碼。我可以在普通的web api應用程序中通過在Azure門戶中註冊它們來實現相同的場景。任何人都可以告訴我如何註冊使用Owin公開的WebApi的服務結構微服務應用程序。由於網址是動態的(對於有狀態的分區ID和副本ID),我在註冊回覆URL和登錄URL時遇到困難。我在調用相應的服務時收到未經授權的訪問。我不確定在azure活動目錄中添加應用程序時,需要爲有狀態或無狀態應用程序註冊哪些url。你能否告訴我我錯在哪裏以及如何實施。在Azure Active Directory(AAD)中註冊MicroServices以實現安全
回答
任何人都可以告訴我如何註冊一個服務結構微服務應用程序WebApi暴露使用歐文。由於網址是動態的(對於有狀態的分區ID和副本ID),我在註冊回覆URL和登錄URL時遇到困難。
客戶端憑證流程用於服務或守護程序應用程序。當我們使用客戶端憑證流來獲取令牌時,不需要使用redirect_url。你可以註冊任何驗證redirect_url。下面是使用客戶機憑證的示例:
POST https://login.microsoftonline.com/<tenantId>/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
&client_id=<clientId>
&client_secret=<clientSecret>
&resource=<app id uri of your web api >
它是相同的是與使用天青服務織物網API天青AD集成。以下是供您參考的示例:
1。註冊用於保護Azure門戶上的Web API的Web應用程序(app1)
2。註冊一個Web應用程序(app2)作爲客戶端以請求Web API
3。將門戶網站app1授予app2
4。使用創建服務結構應用程序無狀態Web API模板
5。配置Service Fabric應用程序的app.config
<add key="ida:Audience" value="app id Uri of app1" />
<add key="ida:Tenant" value="tenantId" />
6。安裝包Microsoft.Owin.Security.ActiveDirectory
Install-Package Microsoft.Owin.Security.ActiveDirectory
7.修改如下面的啓動代碼:(注意:所述方法appBuilder.UseWindowsAzureActiveDirectoryBearerAuthentication
是appBuilder.UseWebApi(config)
之前。
public static void ConfigureApp(IAppBuilder appBuilder)
{
// Configure Web API for self-host.
HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
appBuilder.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
Audience = ConfigurationManager.AppSettings["ida:Audience"],
Tenant = ConfigurationManager.AppSettings["ida:Tenant"],
TokenValidationParameters = new System.IdentityModel.Tokens.TokenValidationParameters
{
ValidateIssuer = false
}
});
appBuilder.UseWebApi(config);
}
- 運行服務織物應用
- 使用上述(的clientId和clientSecret是從APP2)
- 請求中的服務公開由所提到的客戶機憑證流獲得所述令牌帶有訪問令牌的服務結構應用程序,它運行良好
謝謝..解決了這個問題..我只有一個失誤。我在Azure廣告配置註冊後放置了appBuilder.UseWebApi(config).. –
- 1. Azure Active Directory(AAD)即席認證
- 2. Azure Active Directory註銷
- 3. 實現Azure Active Directory訪問控制
- 4. Java中的Active Directory實現
- 5. Azure Active Directory SSO
- 6. Azure Active Directory域
- 7. 註冊用戶Microsoft Active Directory來自注冊表格
- 8. Azure Active Directory(AAD)身份驗證,重定向URL不起作用
- 9. Azure Active Directory註冊重定向到登錄
- 10. 使用Windows Azure Active Directory爲MVC 4網站註冊新用戶
- 11. 在本地測試Azure Active Directory安全性
- 12. 使用ADAL庫註銷Azure Active Directory
- 13. Azure Active Directory登錄
- 14. 刪除Azure Active Directory
- 15. Azure Onpremise Active Directory SSO
- 16. auth0和azure active directory
- 17. Azure Active Directory角色
- 18. 使用PowerShell在Azure B2C Active Directory中註冊服務應用程序
- 19. Active Directory vs Sitecore安全提供商
- 20. 計數Active Directory安全組成員
- 21. 在Azure Active Directory中按組授權B2C
- 22. 在Azure Portal中創建Active Directory服務
- 23. 在新門戶中禁用Azure Active Directory
- 24. 在Microsoft Azure中使用Active Directory
- 25. 試圖實現Azure Active Directory B2C給了我一個404錯誤
- 26. Azure Active Directory訪問錯誤
- 27. Azure的B2C的Active Directory
- 28. Azure Active Directory - 分配給組
- 29. Azure Active Directory組/角色
- 30. Azure,python管理Active Directory
有關您所做的一些代碼可以提供幫助。 – Peter
我遵循這裏提到的相同步驟[https://github.com/Azure-Samples/active-directory-dotnet-daemon]這裏的TodoListService是一個服務結構statefull服務,使用部署在雲集羣中的owin展示web api 。我不確定回覆和登錄url的配置。我嘗試了提供完整網址和部分網址的方法,如下所示, 部分網址:http:// localhost:8082/SampleMa/ 完整網址:\t http:// localhost:8082/SampleMa/9ac178c1-0f43- 4c9e-a816-546546e50cea/131250461563590773/688ff0f2-b980-437a-95ec-527645a5d107 –
這是 VAR Y =新WindowsAzureActiveDirectoryBearerAuthenticationOptions { 租戶= 「testad.onmicrosoft.com」 中使用的配置, TokenValidationParameters =新System.IdentityModel .Tokens.TokenValidationParameters { SaveSigninToken = true, ValidAudience =「https://testad.onmicrosoft.com/SampleMa」 } }; appBuilder.UseWindowsAzureActiveDirectoryBearerAuthentication(y); 我總是收到來自守護進程控制檯應用程序 –