2016-09-06 9 views
0

私は認証コードフローを使用していますが、ユーザー情報エンドポイントを使用してユーザー情報を取得しようとしていますが、クレームを取得しません。私はIncludeInIdTokenを名前プロファイルの電子メールのようないくつかの要求に対して有効にしました。また、Idtokenをデコードすると上記の主張を見ることができませんでした。 GetProfileDataAsyncメソッドをデバッグしようとしましたが、ADグループを使用しているので、ここでNameプロパティがnullになっています。 "Name"をLocalLoginAsyncメソッドのグローバル変数に保存しようとしましたが、GetProfileDataAsyncメソッドで同じ名前を使用しました。今、私はTaskResultへの請求を追加したが、私は、カウントを取得しています「0」応じてIdentity server3:ユーザー情報エンドポイントがnullを返すクレーム

私は

Claims

特許請求の範囲に次のような結果を見ることができていたコードを使用することにより、トークンを要求

と私はIdTokenにこれらの請求項を参照することはできませんよ、 Id_token

次に、時間ときに私は「サブ」または全くNameプロパティを除くすべてのクレームを取得していない午前アクセストークンを使用してエンドポイントユーザ情報を使用して要求。私は

リターンTask.FormResult(identity.Claimsのような間違いをしていますので、私は、コードのデバッグを試み、問題を発見したユーザー情報のエンドポイント応答

答えて

0

とのクレームを取得できますか

.where(x => context.RequestedClaimTypes.Contains(x.Types)));

代わりに

context.IssuedClaims = identity.Claims.where(X => context.RequestedClaimTypes.Contains(x.Types))を行います。 return Task.FromResult(0);

しかし、それでもまだ、私は、ユーザー情報のエンドポイントとヌルのユーザー名(Name)プロパティを取得しています..

0

私はあなたのリクエストでprofileスコープを要求していると仮定しています。これが当てはまる場合、usernameは有効なスコープではなく、このスコープのlist of standard claimsの一部を構成しません。申し立ての名前をnicknameまたはpreferred_username

に変更する必要があります
関連する問題