問題タブ [identityserver2]
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.
ruby-on-rails-4 - Rails クライアントを IndentityServer SSO プロバイダーに接続する方法
職場では、ThinkTecture IndentityServer SSO プロバイダーを実行するようにセットアップされたシステムがあり、現在、いくつかの .NET および ColdFusion サイトの認証を提供しています。現在、Ruby on Rails でサポートしている新しいサイトに取り組んでおり、SSO に接続する方法がわかりません。(私はレールにはかなり慣れていませんが、CF と .NET の長年の開発者です)
omniauth-oauth2 と oauth2 の gem を見てきましたが、私が見つけたドキュメントや説明には重要な部分が欠けているようです。Twitter、Facebook、または同様のものを使用して認証したい場合は、大量の情報がありますが、一般的な OAuth2 プロバイダーのクライアント側に対処するだけのものは見つかりません。
これを行う方法についての情報を見つけるために、私を正しい方向に向けてくれる人を探しています。それがIdentityServerに固有のものなのか、プロバイダーに関係なく単に一般的なものなのかは気にしません。助けてくれてありがとう。
更新:ご存知のように、この接続には OAuth2 を使用することをお勧めしますが、ADFS、WSFed、Simple HTTP など、IdentityServer が提供する他の方法を使用することに反対しているわけではありません。ただし、OpenID は使用できません。これらのアカウントはシステム固有のものであり、他のシステムでは使用できないからです。
asp.net-web-api - javascript クライアントでリソース所有者フローを使用して、IdentityServer3 から取得したトークンにアクセスするためのクレームを追加する方法
IdentityServer3 でリソース所有者フローを使用し、次のように JavaScript でユーザー名とパスワードを使用してトークン取得要求を ID サーバー トークン エンドポイントに送信します。
ID サーバーからアクセス トークンが返され、ユーザーが認証されます。次に、このトークンを使用して Web Api にリクエストを送信します。
問題は、ユーザーにロールが割り当てられているかどうかを確認すると、クレームが存在しないことがわかります。
クライアントが ID サーバーでどのように定義されるかを次に示します。
これがユーザーの定義方法です。
この場合、access_token にクレームを追加するにはどうすればよいですか? どうもありがとう!
iis-7.5 - HTTP エラー 500.19 - 内部サーバー エラー - エラー コード 0x80070490 - IIS 7.5 (Azure で動作)
Azure エミュレーターでコードを実行しています。私が構築したコードは Thinktecture のIdentityServer2です。エミュレーターの実行が開始され、すべての準備が整った後、ブラウザーで URL を起動するとエラーが発生します。この問題に関する別の SOスレッドがあります。しかし、解決策は私のWeb.Configには当てはまらないようです
- URL 書き換えモジュールのルールはありません
- IIS マネージャーの既定の Web サイトには、パススルー認証があります。これは何ですか ?
- wwwroot にアクセスするためのフル コントロールをユーザーに付与します。
- 仮想フォルダー > 基本設定 > 接続先 > パス資格情報にはパススルー認証があります
他に何をすべきですか?
Web.Config
エラー
ノート
修正試行 1 機能しません。
angularjs - ルートで余分なハッシュを処理する方法は? (AngularJS 1.5 + 新しい/コンポーネント ルーター)
新しいコンポーネント ルーター ビットを備えた Angular 1.5 を使用してアプリを構築しようとしています。少し特殊なケースに遭遇したので、それを回避する方法があるかどうか疑問に思っています。
主なプレーヤー
- IdentityServer v2 : 現在、クライアントはこれを OAuth に使用しています。この問題の一部を引き起こします。これはレガシーであり、その使用法を制御することはできません。
- フロントエンド フレームワークとしてAngularJS 1.5 。
- ngComponentRouter と呼ばれる新しい angular routerは、今では信じられますか? 私たちは、このスタイルが Angular v1.5 と Angular v2 の間の橋渡しに役立つと考えており、移植も簡単でした。
- OAuth 暗黙的フローのラッパーとしてのoauth-ng ..
- 古いブラウザー: IE9+ をサポートする必要があるという意味で、Angular の HTML5 モードを使用できないことを意味します。
目標
次のような URL を取得したいと考えていますhttp://mysite/#!/auth/#auth_token=xyz123
(構造は制御下にありません。たとえば、2 番目のハッシュを削除できません)。
- 実際の認証コントローラーに入れる
- パラメータを介して、または を介して直接、auth_token 値を使用できるようにします
$location
。(現在、コントローラーに到達する前にスクラブされています)。
背景・問題点
クライアントには、IdentityServer v2 を使用している中央ログイン システムがあります。私が理解している限りでは、IdSrv v2 からトークンをリクエストする#auth_token=xyz123
と、リダイレクト URL に追加して応答します。あなたが持っていると思ったときに書き戻されたmy.com/login.html
ため、login.html#auth_token=xyz123
.
ただし、すでにハッシュを使用している Angular アプリでは、URL が最終的にmysite.com/#/auth#auth_token=xyz123
.
ご想像のとおり、これは Angular を怒らせます。これをコンポーネントルーターの下で機能させる方法をまだ見つけられていません。
古いルーターとの連携方法
oauth -ng docsに従って、html5 を有効にせずに古いルーターを使用していた場合は、次のようにします。
試したこと
- 同様の方法でコンポーネント ルートを定義します。コンポーネント ルーターで許可されていないように見える が
/access_token=:accessToken
含まれているため、これは機能しませんでした。=
- IdentityServer v2 で応答の形式を変更できるかどうかを確認します。それは可能ではないようです。応答は にハードコードされているよう
[URL we define]#auth_token=xyz123
です。 - 他のハッシュなどを使用して URL を偽造します。一般的に、悪い/一貫性のない動作が発生します。
私たちの選択肢は何だと思いますか
- キャッチオール / 見つからないコントローラーを使用します。ルートを まで通過させれば、
/**
からトークン値を取得できます$location
。しかし、それは一種のグロスです。私たちはそれを避けたいです。 - 完全な URL をコントローラに取得する方法を見つけます。ルートをキャプチャしてコントローラーに渡すことはできますが、その時点では URL を使用できません。
- 古いルーターまたは ui-router の使用に戻ります (この時点ではやりたくありません)。
私たちを正しい方向に向けることができるものは何でも大歓迎です!
wcf-binding - IdentityServer 2 の WS-Trust MEX エンドポイントが GET 要求に対して HTTP 400 を返す
IdentityServer 2 をカスタマイズして、ID フェデレーション機能を Azure AD (Office 365 など) に提供しました。これには、パッシブ リクエスター フロー用の WS-Federation エンドポイントと、アクティブ クライアント用の WS-Trust があります。WS-Trust の MEX エンドポイントは、POST (Lync が使用する場合) と GET (Windows 10 サインインが使用する場合) の両方に応答して、WS-Trust SOAP の WSDL を返す必要があります。残念ながら、HTTP 400: ws-trust system.servicemodel.protocolexception "ネットワークから受信した XML に問題があります" が返されます。
System.ServiceModel.Security.WSTrustServiceHost のインスタンスは、WS-Trust への呼び出しを処理し、そのメタデータを処理するために立ち上がっています。WSTrustServiceHost ctor にデフォルトで追加されている ServiceMetadataBehavior を確認すると、HTTP と HTTPS の両方で GET のメタデータが有効になっていることがわかります。 http://referencesource.microsoft.com/#System.ServiceModel/System/ServiceModel/Security/WSTrustServiceHost.cs,8c80389f2532b060,参照
そのため、なぜhttps://myhost.com/issue/wstrust/mexが POST でヒットしたときにメタデータを返し、GET を送信すると 400 を返すのか、少し混乱しています。System.ServiceModel の EnqueueMessageAsyncResult.CompleteParseAndEnqueue() で例外がスローされています http://referencesource.microsoft.com/#System.ServiceModel/System/ServiceModel/Channels/HttpPipeline.cs,b347567a68ab778c,references
どんな助けでも大歓迎です!
asp.net - Thinktecture Identityserver 2 をクレーム プロバイダーとして使用する AD FS 3.0: イベント 197 および 364
AD FS 2.0 から AD FS 3.0 への移行で問題が発生しています。
AD FS によるフェデレーション認証を使用する ASP.NET MVC アプリケーションがあります。テスト環境では、Thinktecture Identityserver 2 を AD FS のクレーム プロバイダーとして構成しました。アプリケーションが要求しますauthenticationType="urn:oasis:names:tc:SAML:2.0:ac:classes:SmartcardPKI"
。参考までに、web.config ファイルの ID セクション全体を次に示します。
現在、Windows Server 2008 R2 と AD FS 2.0 を搭載したやや古いサーバーで実行していますが、動作します。最近、Windows Server 2012 R2 と AD FS 3.0 を実行するサーバーの新しい環境をセットアップしました。MVC アプリケーションを新しいサーバーにインストールし、AD FS 3.0 を別のサーバーにセットアップしました。古い AD FS 2.0 のように (私たちが知る限り)、MVC アプリを証明書利用者として、Thinktecture Identityserver 2 をクレームとして構成しました。プロバイダー。1 つの違いは、AD FS 3.0 ではこれが必要なため (AD FS 2.0 では必要なかった)、別のサーバーで AD FS プロキシを使用するようになったことです。実際、2 つの AD FS サーバーがあり、ロード バランサーの背後に 2 つのプロキシがあります。Thinktecture Identityserver 2 は、まだ古いサーバー (Windows Server 2008 R2) で実行されています。
問題は次のとおりです。アプリケーションのアドレスを参照します。期待どおりに AD FS にリダイレクトされ、すぐに Thinktecture Identityserver 2 にリダイレクトされます。ユーザー名 (「Anders」) とパスワードでログインすると、AD FS にリダイレクトされます。ここで、「エラーが発生しました」という一般的なエラー ページが表示されます。AD FS サーバーのイベント ログ (明らかに、ロード バランサーは、たまたまプライマリである同じノードに私を誘導するようです) で、2 つのエラーと 1 つの警告を見つけます。最初のエラー:
次に警告:
次に、2番目のエラー:
このページの AD FS でサポートされている SAML 認証の種類について読みました: https://msdn.microsoft.com/en-us/library/hh599318.aspx。SmartcardPKIはここには記載されていません。(ただし、ドキュメントは AD FS 2.0 用であることに注意してください。)
AD FS サーバー (古いものと新しいものの両方) で、次の PowerShell コマンドを使用して、サポートされている AuthenticationTypes を一覧表示しようとしました。
古いサーバーと新しいサーバーの両方で、次のように出力されます。
urn:oasis:names:tc:SAML:2.0:ac:classes:Password
urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient
urn:oasis:names:tc:SAML:2.0:ac:classes:X509
urn:federation:authentication:windows
urn:oasis:names:tc:SAML:2.0:ac:classes:Kerberos
ここにもSmartcardPKIはありません。古い環境で機能することは決して少なくありません。
また、 SmartcardPKIの代わりにPasswordProtectedTransportを使用してみました (MVC アプリケーションの web.config を編集して)。結果はまったく同じでしたが、最初のエラー メッセージは次のようになりました。
次に何を試すべきかについての指針は大歓迎です。AD FS 2.0 と 3.0 には違いがあり、Thinktecture IdentityServer 2 の構成を変更する必要があるのでしょうか?