使用wsfedration和Owin中间件通过Azure广告获取声明

时间:2018-06-21 13:28:31

标签: asp.net azure-active-directory owin ws-federation

我正在尝试添加身份验证选项以在asp.net应用程序中支持Azure AD。 web.config文件具有一些选项:

<add key="ida:FederationMetadataLocation" value="https://login.microsoftonline.com/common/FederationMetadata/2007-06/FederationMetadata.xml" />
  <add key="ida:Realm" value="..." />
  <add key="ida:LogoutReply" value="..." />
  <add key="ida:OwinWsFederationEnabled" value="true" />

此外,通过以下代码配置身份验证:

public partial class Startup{
public void ConfigureAuth(IAppBuilder app){
        app.SetDefaultSignInAsAuthenticationType(DefaultAuthenticationTypes.ApplicationCookie);
        app.UseCookieAuthentication(new CookieAuthenticationOptions()
        {                
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            LoginPath = new PathString(...),
            LogoutPath = new PathString(...),                
        });

        app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = "ExternalCookie",
            AuthenticationMode = Microsoft.Owin.Security.AuthenticationMode.Passive,
        });


        var authenticationOptions = new WsFederationAuthenticationOptions()
        {
            AuthenticationType = WsFederationAuthenticationDefaults.AuthenticationType,
            MetadataAddress = metadata,
            Wtrealm = realm,
            Wreply = reply,
            Caption = caption,
            SignOutWreply = logoutreply,
            TokenValidationParameters = new System.IdentityModel.Tokens.TokenValidationParameters
            {                        
                ValidateIssuer = false
            }
            AuthenticationMode = Microsoft.Owin.Security.AuthenticationMode.Passive,
        };

        app.UseWsFederationAuthentication(authenticationOptions);   
    }               
}

这种工作方式是因为它将我重定向到azure登录并返回到应用程序登录路径。但是,在一切正常的情况下,我没有获得有关新登录用户的任何信息。

var oid = GetClaim("http://schemas.microsoft.com/identity/claims/objectidentifier");
为此,

具有此或其他任何声明类型。所有声明都返回空值。

该应用程序已作为多租户注册到我的Azure AD目录。 如果我将元数据位置设置为特定于租户的元数据,则AAD不会将我重定向回应用程序,因为天青广告用户来自其他租户。

我想从Azure AD获得用户主张的地方是什么?

0 个答案:

没有答案