これは、2つのリダイレクトURLを含むように、すべての認証要求のための一般的な(かつ簡単な)です:
- ワン(しばしば返信URLとして知られている)「REDIRECT_URI」パラメータで渡されましたAzure AD B2Cに登録されているである必要があります。すべての認証応答が、Azure AD B2Cから信頼関係のアプリケーションに返されます。この例は
https://www.myawesomesite.com/oidc-signin
です。
- 別(しばしばとして戻りURLを知られている)は、エンドユーザーが後に返却されているのAzure AD B2C、とを登録する必要はありません「状態」パラメータでラウンドトリップしています依拠当事者アプリケーションが認証応答を処理しました。この例は
https://www.myawesomesite.com/games/fungame/points
です。
認証ハンドラ(the ASP.NET Core authentication middlewareなど)は、これらのリダイレクトURLを管理します。
たとえば、認証ハンドラが認証要求を作成すると、「状態」要求パラメータに現在保護されているURL(たとえばhttps://www.myawesomesite.com/games/fungame/points
)がエンコードされます。
このURLが改ざんされないようにするには、暗号化または署名を使用して「状態」パラメータを保護する必要があります。
認証ハンドラが認証応答を処理すると、応答が成功したとみなしてIDクッキーを作成し、エンドユーザをhttps://www.myawesomesite.com/oidc-signin
から "state"応答パラメータの元の保護されたURLにリダイレクトします。
y私たちのすばらしいアプリは、同じエンドポイントですべての認証レスポンスを処理します(例:/oidc-signin)? –
いいえ、100のユニークなパスがあり、99個が認証されているとします。ユーザーは99のパスのいずれかにブックマークを付けることができます。 – spottedmahn
@ChrisPadgett認証されたページにアクセスした場合、B2Cにリダイレクトしてそのページに戻る必要があります。 – spottedmahn