2017-03-13 11 views
0

私はアイデンティティ・サーバー・アプリケーションを使用していますが、私はAzure ADで動作するように設定しています。 Azure Ad Appの登録があり、適切に認証することができます。アイデンティティ・サーバー3 AzureAdクレームが返されない

thisを見て、ユーザーに関連付けられた第三者のユーザーIDを保存するのに似たようなことをしようとしていますが、subまたはnameIdentifierのクレームはAADから返されません。

どういうわけか、AzureADからこれらをリクエストする必要がありますか? - 彼らのドキュメントは、 "サブ"クレームが返されている(または少なくとも返すことができる)と言っているようです。https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-token-and-claims#_subjectThis記事はサブが返されないと言いますが、それはマルチテナントアプリケーションのためです。

私は単純なものがありませんが、Googleに関連するものは見つかりません。

乾杯、 アレックス

答えて

0

記事Work with claims-based identitiesが古すぎると、このAzure AD token reference記事は、AzureのADによって発行されたトークン中のトークンの主張についての権利でなければなりません。

テストに基づいて、私はアズールのADからsub申し立てを受けた可能性があり、それはまた、以下の図のようにIdentityServer3によって発行された:ここで enter image description here

私はあなたの参考のためにIdentityServer3ためconfigedコードは次のとおりです。

var webApp = WebApp.Start("https://localhost:44333", app => 
{ 
    app.UseIdentityServer(new IdentityServerOptions 
    { 
     SiteName = "NDC Demo", 
     SigningCertificate = cert, 
     Factory = factory, 
     AuthenticationOptions = new AuthenticationOptions 
     { 
      IdentityProviders = ConfigureAdditionalIdentityProviders, 
      EnableAutoCallbackForFederatedSignout = true 
     } 
    }); 
}); 

public static void ConfigureAdditionalIdentityProviders(IAppBuilder app, string signInAsType) 
{ 
    app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions 
    { 
     AuthenticationType = "aad", 
     Caption = "Azure AD", 
     SignInAsAuthenticationType = signInAsType, 

     Authority = "https://login.microsoftonline.com/{tenantId}", 
     ClientId = "{clientIdFromAzurePortal}", 
     RedirectUri = "{redirectUri}", 
    }); 
} 

問題が解決しない場合は、リクエストをAzure ADに共有して、Fiddlerを使用してキャプチャできますか。

+0

ありがとう@ fie-xue-msft。私のフィドラーの跡はあなたのものと同じです。 AADから生の応答トークンをどのように取得しますか?おそらく私はそれを取り戻すためにいくつかの特定のスコープを含める必要がありますか?あなたはIDSの 'AuthenticateExternalAsync'メソッドの一部として返された主張を取得しますか?この回答(http://stackoverflow.com/questions/32510679/getting-users-token-subject-identifier-sub-from-within-azure-ad)では、私は 'sub'ではなく' oid'を見なければならないと言います。質問は一歳です。 – Alex

+0

ポストのコードとして、IdentityServer3はAzure ADとOpen ID接続プロトコルを使って対話します。この問題がAzure ADまたはIdentity Server 3に起因するものかどうかを絞り込むには、この[site](https://jwt.io/)のAzure ADからのid_token戻り値をデコードすることをお勧めします。 –

+0

私が知る限り、唯一の「サブ」はOpen ID接続でサポートされているスタンドクレームです([ここ](http://openid.net/specs/openid-connect-core-1_0.html#StandardClaims ))。 –