問題タブ [openid-connect]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
authentication - Azure からの OpenID Connect によるフェデレーション認証
Azure で .NET アプリケーションを実行し、オンプレミスのディレクトリに対して (PingFederate を介して) 認証する必要があります。ACS は1 年以上非推奨になっていますが、Azure からフェデレーション認証を行う唯一の方法であるようです。また、ACS は OpenID Connect をサポートしていないようです。
では、Azure から OpenID Connect を介してフェデレーション認証を行うことはできないと考えるのは正しいでしょうか? また、外部 ID プロバイダーとのフェデレーションがいつ Azure AD に追加されるか知っている人はいますか?
java - OpenID Connect - JavaでIDトークンを確認するには?
Java アプリケーションに基本的な OpenID 接続フローを実装しましたが、問題なく動作しているようです。
OpenId 接続の実装に関するSalesforce ページで詳しく説明されているように、既存の Java ライブラリを使用して ID トークンを検証したいと考えています。
これをうまく実装している既存のライブラリはありますか? 応答を解析しました。id トークンが有効であることを確認する簡単な方法を見つける必要があります。
c# - Owin/Katana クライアントを使用して、「リクエスト」オブジェクト内のクレームを OpenID Connect プロバイダーに渡す方法は?
独自の OpenID Connect プロバイダーがあります。また、リクエストを作成して結果を解析する Relying Party 用の独自の SDK もあります。そして今、Owin/Katana クライアントでプロバイダーを機能させたいと考えています。
OpenID Connect Spec によると、"Request" オブジェクトhttp://openid.net/specs/openid-connect-core-1_0.html#JWTRequestsを使用できます。このオブジェクトでは、要求されたクレームとクレームの値を OpenID Connect に渡すことができます。プロバイダー。
私の最初の質問は、 Owin/Katana ミドルウェアを使用して、リクエストされたクレームとその値を含む「リクエスト」オブジェクトを渡すにはどうすればよいですか? Microsoft.Owin.Security.OpenIdConnectアセンブリを使用してそれを行う方法が見つかりません。スコープのみをリクエストできるようです。それだけです。
そして 2 番目の質問(私たちにとっては重要ではありませんが): Owin は「クエリ」応答モードをサポートしていますか? デフォルトでは、Owin は暗黙的なフローと "form_post" 応答モードを使用します。しかし、「クエリ」応答モードを使用しようとすると、結果がありませんでした (プロバイダーは、クエリ パラメーターに id_token を指定して redirect_uri にリダイレクトしましたが、Owin はそれをキャッチしませんでした。「form_post」応答モードでは、すべて正常に機能しました)。このコードを試しました:
あなたの助けに感謝します。
google-app-engine - ユーザーがGoogle Openid接続を使用して認証されているときにログインユーザーを取得する方法は?
openid 2.0はGoogleによって廃止されたため、アプリケーションでユーザーを認証するためにGoolge openid connectを使用しています。
Google openid 接続要求を行うと、ユーザーの詳細を取得するアクセス トークンを取得し、ユーザーのメールをアプリケーション セッションに保存します。したがって、私のアプローチでは UserService を使用していません。
このアプローチでは、次のコードを試してみると、ログインしたユーザーの詳細が提供されません。
上記のコードでは、ユーザーが openid 接続を介してアプリケーションにログインした後でも、ユーザーを null として取得します。
したがって、問題は、ユーザーをログアウトできず、Google からログアウトした後でもユーザーがアプリケーションからログアウトされないことです。ユーザーがブラウザーを閉じるまで、ユーザーの電子メールはアプリケーション セッションで使用できます。
openid - openid ステートレス クライアントを openid 2 として接続する
openidサーバーをopenid 接続に移行する方法を理解しようとしていますが、 openid 接続フローについて詳しく読んでいると、クライアントまたはリレー パーティの場合、状況がより複雑になっていることに気付きました。
検出を実行した後のopenidでは、クライアント側からの認証サーバー間の交換は完全にステートレス (ダム モード) になる可能性があります。現在、openid 接続を使用すると、クライアントはその情報を保存する方法が必要になります。これはoauth2のためです。フロー。client_id
client_secret
私が正しければ、これは、認証を行う必要があるたびに、サーバー/アプリケーションにclient_id
&がない場合に「動的登録」を実行する必要があることを意味しますclient_id
。
私の理解では、openidを使用すると、アプリケーションはアクセスを取得するためにステートレス フローをたどることができ、基本的には認証サーバーからの応答を信頼するだけです。単純に、最初に契約に署名して後で信頼 する必要はありません。 .
openidはopenid connectよりも汎用性が高いようですが、完全に間違っている可能性があります。そのため、移行プロセスを簡素化する方法に関するベスト プラクティスを知りたいです。または、いつものようにopenidを使用し続け、 openid connectをまったく別の代替手段として検討することもできます。
c# - ASP.NET Web API と OpenID Connect: 認証コードからアクセス トークンを取得する方法
OpenID Connect を実行しようとしています... Web API のユーザーが、OpenID Connect プロバイダーの認証コードを取得できました。このコードを ASP.NET Web API に渡すにはどうすればよいですか? 認証コードを使用してアクセス トークンを取得できるように、OWIN ミドルウェアをどのように構成する必要がありますか?
更新: SPA は、Web サービス (ASP.NET Web API) との通信に AJAX を使用します。私の Web サービスでは、OWIN ミドルウェアを使用しています。認証メカニズムとして OpenIDConnect を設定しました。Web サービスが初めて呼び出されたときに、ユーザーを OpenID Connect プロバイダーのログイン ページに正常にリダイレクトしました。ユーザーはログインでき、結果として認証コードを取得できました。私の知る限り、このコードは(私のWebサービスによって)アクセストークンに使用できるようになりました。ただし、このコードを Web サービスに戻す方法 (これはヘッダーを使用して行われますか?) と、アクセス トークンを取得するために構成する方法がわかりません。トークン エンドポイントを手動で呼び出すこともできると思いますが、代わりに OWIN コンポーネントを利用したいと考えています。
asp.net-web-api - Google OpenID Connect を使用した ASP.NET Web API
目標: Web サービス (OWIN を使用する ASP.NET Web API) を OpenID Connect で保護したいと考えています。ID プロバイダーは Google です。
重要: 私は Web サービスのみを担当しています。私は Web アプリケーションを持っていません (UI はありません。これは Web サービスを使用するサード パーティによるものです)。
考慮事項: 私の Web サービスはサーバー上で実行されるため、認証コード フロー (またはハイブリッド?) を使用するのが最善だと思います。
これまでの作業: OpenID Connect ( ) を使用するように (Web サービスで) OWIN を構成しましたUseOpenIdConnectAuthentication
。
現在の動作: 許可されていない誰かが Web サービスにアクセスしようとすると、Web サービスはそのユーザーを Google にリダイレクト (302 を送信) します。私はUIを持っていないので、同意ページを適切に表示するのはサードパーティ次第です. ユーザーが同意して「同意する」を押したとします。
ここで私は立ち往生しています...私が理解している限り、Googleは認証コードを送り返します(私のWebサービスはアクセストークンを取得するために使用できます)。認証コードを入手するにはどうすればよいですか? Google は認証コード フロー ( ResponseType = code
) もサポートしていますか?
Google を手動で呼び出して (アクセス トークンを取得するため)、次にサインイン (を使用GetOwinContext().Authentication.SignIn(id);
) する必要がありますか? それとも、OWIN ミドルウェアがこれを処理しますか?
更新: 再現はこちら: https://github.com/Dunken/WebApiOpenIdConnect
oauth-2.0 - WSO2 Identity Server で prompt=none パラメーターを使用して OAuth2/OpenID Connect 経由でアクセス トークンを検証できない
OpenID Connect Core 1.0 仕様に従って、認証リクエストにprompt
valueのパラメーターが含まれている場合none
、サーバーは次の方法でそれを処理する必要があります。
認可サーバーは、認証または同意のユーザー インターフェイス ページを表示してはなりません。エンドユーザーがまだ認証されていない場合、またはクライアントが要求されたクレームに対して事前に構成された同意を持っていない場合、または要求を処理するための他の条件を満たしていない場合、エラーが返されます。エラー コードは通常、login_required、interaction_required、またはセクション 3.1.2.6 で定義されている別のコードです。これは、既存の認証および/または同意を確認する方法として使用できます。
私の問題は、この方法の前に受け取ったアクセス トークンを検証しようとすると (prompt=none
他の必要なパラメーターと共にペアを渡す)、WSO2 IS サーバーは常にコード 302 で応答し、ログイン ページにリダイレクトすることです。以下は、次のcURLコマンドからの対応する出力です。
誰かが私に教えてもらえますか - それは認証要求自体の問題であり、私は何か間違ったことをしましたか、この場合の WSO2 IS サーバーの動作は仕様に準拠していませんか?
私はWSO2 Identity Server 5.0.0を使用しています
ご回答ありがとうございます。