タグ付けされた質問 「openid-connect」

3
クロスドメイン認証にJWTを使用するシングルサインオンフロー
WebにはJson Web Token、認証にJWT()を使用することに関する多くの情報があります。しかし、マルチドメイン環境でシングルサインオンソリューションに JWTトークンを使用する場合のフローの明確な説明はまだわかりませんでした。 私は、さまざまなホスト上に多数のサイトがある会社で働いています。example1.comとexample2.comを使用してみましょう。シングルサインオンソリューションが必要です。つまり、ユーザーがexample1.comで認証された場合、そのユーザーもexample2.comで自動的に認証されるようにします。 OpenId Connectフローを使用して、example1.comで認証するユーザーが最初に認証サーバー(またはOP「OpenIdプロバイダー」)にリダイレクトされることを理解しています。ユーザーはそのサーバーで認証され、署名されたJWTトークンを使用して元のexample1.comサイトにリダイレクトされます。(後でそれ自体が実際のJWTトークンと交換できる中間トークンを返す別のフローがあることを理解していますが、これは私たちには必要ではないと思います)... これで、ユーザーはexample1.comに戻り、認証されました。AuthenticationヘッダーでJWTトークンを渡して要求を出すことができ、サーバーは署名されたJWTを検証できるため、ユーザーを識別できます。いいね! 最初の質問: JWTトークンはどのようにクライアントに保存する必要がありますか?繰り返しになりますが、これについては多くの情報があります。人々Web Storageは、古き良き時代というよりは、使用することが道のりであることに同意しているようですcookies。JWTをブラウザーの再起動間で永続的にしたいのでLocal Storage、ではなくを使用しましょうSession Storage... これで、ユーザーはブラウザを再起動でき、JWTトークンの有効期限が切れていない限り、example1.comで認証されます。 また、example1.comが別のドメインにAjaxリクエストを行う必要がある場合、CORSを構成するとそれが可能になることを理解しています。ただし、主な使用例はクロスドメインリクエストではなく、シングルサインオンソリューションです。 したがって、主な質問: ここで、ユーザーがexample2.comにアクセスして、すでに持っているJWTトークンを使用して認証されるようにした場合、フローはどうなりますか?Local Storageはクロスドメインアクセスを許可していないようです。そのため、この時点ではブラウザはJWTトークンを読み取ってexample2.comにリクエストを送信できません。 する必要があります: ユーザーは再び認証サーバーにリダイレクトされますか?ユーザーがexample1.comに対して認証されると、 認証サーバーはユーザーにCookieを設定している可能性があるため、example2.comに対するこの新しい認証要求はそのCookieを使用して、ユーザーがすでに認証されていることを確認し、すぐにexample2.comにリダイレクトします 。同じJWTトークンで? または、ブラウザがexample2.comで、認証サーバーに再度アクセスすることなくJWTトークンにアクセスできますか?私はそこにある参照クロスストレージ・ソリューションは、しかし、それらの広く使用されていますか?それらは、クロスドメインSSO環境の推奨ソリューションですか? 私たちは空想したいものは何もありません、私たちは主に使用されるソリューションで満足します!

7
OpenID ConnectでのIDトークンの有効期限の意図は何ですか?
OpenID Connectでは、アクセストークンには有効期限があります。認証コードフローの場合、これは通常短い(たとえば、20分)後、更新トークンを使用して新しいアクセストークンを要求します。 トークンIDもは有効期限の時間を持っています。私の質問は、これの意図は何ですか? IDトークンの有効期限が更新トークンの有効期限よりも短い場合は、最終的にIDトークンの有効期限が切れますが、有効なアクセストークンがあることを意味します。 だからあなたはするつもりですか: IDトークンの有効期限を更新トークンの有効期限より長くするか、 アクセストークンと同じ有効期限に設定し、有効期限が切れたときに何らかのアクション(何?)を実行するか、 受信時にクライアントでIDトークンを消費し、その後の有効期限を無視しますか? OpenIDの接続仕様は、単に、IDトークンを検証する際と言います "The current time MUST be before the time represented by the exp Claim." これは(おそらく)上記の3番目のオプションをサポートします。 編集 OpenID ConnectはOAuth2に基づいて構築されているため、以下の補足質問に対する回答は、OAuth2仕様に記載されています。 expires_in RECOMMENDED. The lifetime in seconds of the access token. 関連する質問は、トークンの認証コードを交換するときに、同じ仕様で次のような応答が返される可能性があることです。 { "access_token": "SlAV32hkKG", "token_type": "Bearer", "refresh_token": "8xLOxBtZp8", "expires_in": 3600, "id_token": "eyJhbG[...]" } しかし、この場合、「expires_in」は何に関連していますか?アクセストークン、更新トークン、またはIDトークン? …

5
.NET Core Identity Server4認証VSID認証
ASP.NETCoreで認証を行う適切な方法を理解しようとしています。私はいくつかのリソースを見てきました(そのほとんどは時代遅れです)。 Simple-Implementation-Of-Microsoft-Identity ASP.Coreによる認証の概要 アイデンティティのMSDN入門 一部の人々は、Azure ADなどのクラウドベースのソリューションを使用すること、またはIdentityServer4を使用して独自のトークンサーバーをホストすることを示す代替ソリューションを提供しています。 古いバージョンの.Netでは、認証のより単純な形式の1つは、カスタム原則を作成し、その中に追加の認証ユーザーデータを格納することです。 public interface ICustomPrincipal : System.Security.Principal.IPrincipal { string FirstName { get; set; } string LastName { get; set; } } public class CustomPrincipal : ICustomPrincipal { public IIdentity Identity { get; private set; } public CustomPrincipal(string username) { this.Identity = new GenericIdentity(username); } public …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.