0

ACS を接続した Thinktecture の Authorization Server と LiveID を ID プロバイダーとして使用しています。動作しますが、JWT は次のようになります (nameid クレームに注目してください)。

{
"aud": "urn:mygym",
"iss": "https://my-gym.accesscontrol.windows.net/",
"nbf": 1378851574,
"exp": 1378852174,
"nameid": "MjApoxNfAaXXXXXXXXXXXXXdBi7lqd4sjd6j0=",
"identityprovider": "uri:WindowsLiveID"
}

これは私のカスタム JWT トークン ハンドラーでキャッチされるため、ACS から直接取得されます。「nameid」クレームは Live ID UserId である必要がありますが、そうではなく、base64 でエンコードされた文字列のように見えますが、ランダムな文字にデコードされるだけです。https://apis.live.net/v5.0/8c8ce076ca27823fのように、ユーザーの公開情報を取得するには UserId を取得する必要があります。

何が間違っているか、構成が間違っている可能性があるかについてのアイデアはありますか?

4

1 に答える 1

0

ACS は、LiveId 認証済みユーザーの電子メールまたは「グローバル ユーザー ID」を提供しません。これにより、特定のユーザーと ACS 名前空間に固有の識別子が提供されます。したがって、認証されたユーザーが戻ってきたユーザーであることが保証されます_、それだけです。

LiveID に接続する他の方法を確認することをお勧めします (たとえば、OAuth エンドポイントを使用して、より詳細に制御できます)。

注: Identity Server を使用している場合、ACS はまったく必要ない可能性があります...

于 2013-09-10T23:50:58.630 に答える