Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为安全起见,在Azure Active Directory(AAD)中注册微服务_Azure_Asp.net Web Api_Owin_Azure Active Directory_Microservices - Fatal编程技术网

为安全起见,在Azure Active Directory(AAD)中注册微服务

为安全起见,在Azure Active Directory(AAD)中注册微服务,azure,asp.net-web-api,owin,azure-active-directory,microservices,Azure,Asp.net Web Api,Owin,Azure Active Directory,Microservices,我在ServiceFabric集群中部署了一个ServiceFabric应用程序(无状态和状态完整)。我正在尝试在应用程序中实现安全性。应用程序使用Active Directory身份验证库(ADAL)使用OAuth 2.0客户端凭据流从Azure AD获取令牌,其中客户端凭据是密码。通过在Azure portal中注册,我能够在普通web api应用程序中实现相同的场景。有谁能告诉我如何在使用Owin公开的WebApi中注册service fabric microservice应用程序。我很难

我在ServiceFabric集群中部署了一个ServiceFabric应用程序(无状态和状态完整)。我正在尝试在应用程序中实现安全性。应用程序使用Active Directory身份验证库(ADAL)使用OAuth 2.0客户端凭据流从Azure AD获取令牌,其中客户端凭据是密码。通过在Azure portal中注册,我能够在普通web api应用程序中实现相同的场景。有谁能告诉我如何在使用Owin公开的WebApi中注册service fabric microservice应用程序。我很难注册回复url和登录url,因为url是动态的(对于statefull分区id和副本id)。我在调用相应服务时收到未经授权的访问。我不确定在azure active directory中添加应用程序时,必须为状态完整或无状态应用程序注册哪个url。你能告诉我哪里错了,怎么做才能实现吗

有谁能告诉我如何在使用Owin公开的WebApi中注册service fabric microservice应用程序。我很难注册回复url和登录url,因为url是动态的(对于statefull分区id和副本id)

客户端凭据流用于服务或守护程序应用程序。当我们使用客户端凭证流获取令牌时,不需要使用重定向url。您可以注册任何验证重定向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 >
七,。修改启动代码,如下所示:(注意:方法
appBuilder.UseWindowsAzureActiveDirectoryBeareAuthentication
appBuilder.UseWebApi(配置)
之前

  • 运行服务结构应用程序
  • 使用上述客户端凭据流获取令牌(clientId和clientSecret来自app2)
  • 使用访问令牌通过服务结构应用程序请求公共服务,并且工作正常

  • 一些关于您所做工作的代码可以帮助您。我将遵循这里提到的相同步骤。[此处的TodoListService是一个服务结构状态完整服务,使用部署在云集群中的owin公开web api。我不确定必须配置什么样的回复和登录url。我尝试了提供完整url和部分url的两种方法,如下所述,部分url:完整url:这是va中使用的配置r y=new-WindowsAzureActiveDirectoryBeareAuthenticationOptions{Tenant=“testad.onmicrosoft.com”,TokenValidationParameters=new-System.IdentityModel.Tokens.TokenValidationParameters{SaveSigninToken=true,ValidAudience=”“};appBuilder.UseWindowsAzureActiveDirectoryBeareAuthentication(y);我总是收到来自守护程序控制台的未经授权的相应调用appI甚至尝试将通配符添加到url,但该方案也不起作用..谢谢..解决了问题..我只是犯了一个错误。我放置了appBuilder.UseWebApi(配置)azure ad配置注册后。。
    <add key="ida:Audience" value="app id Uri of app1" />
    <add key="ida:Tenant" value="tenantId" />
    
    Install-Package Microsoft.Owin.Security.ActiveDirectory
    
    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);
            }