問題タブ [adfs4.0]
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 - ブラウザ以外のクライアントからの SAML (またはその他の) 認証フロー
Web アプリケーションで次の機能を実現するためのガイダンスを探しています。
- 非ブラウザ SSO
- シームレスログイン
非ブラウザ SSO
ADFS (IdP) はプライベート ネットワークにありますが、任意のネットワークからのアクセスを容易にしたいと考えています。つまり、パブリック ドメインでユーザー名 (および要求された場合はパスワード) を取得し、バックエンド スクリプトを介して入力した資格情報を認証する必要があります。
シームレスなログイン
これは SSO であるため、ユーザーが ADFS ドメインに対して既に認証されていることを意味する ADFS とのアクティブなセッションを持っている場合、資格情報を要求することなくアクセスを許可したいと思います。たとえば、彼のオフィス コンピューターにアクセスします。
SAML ECP、OAuth 2.0、OpenID Connect、LDAP のオプションを調べていましたが、オーバーヘッドを除いて要件を解決しているようには見えません。
SAML 駆動型 SSOは、ブラウザーベースであるため、どのネットワークからもアクセスできず、プライベート ネットワーク IdP にアクセスできません。
LDAPにはプライベート ネットワークの制限はありませんが、私の知る限り、SAML のようにシームレスなログインを容易にすることはできません。
OAuth/OpenIDは、認証/承認に関するまったく異なる課題を解決しているようです。
.net-core - ADFS サインアウトの問題 ID4037: 署名を検証するために必要なキーを、次のセキュリティ キー識別子から解決できませんでした
自社開発の Web アプリ A とサード パーティの Web アプリ B があります。どちらも、Windows 2019 データセンター上のオンプレミス ADFS 4.0 サーバー内の依存関係です。
Webapp A は WS-Federation を使用し、webapp B はおそらく SAML 2.0 を使用しますが、100% 確実ではありません。Webapp A には署名証明書がありません。Webapp B には有効な署名証明書があります。
ユーザーは、Web アプリ A と Web アプリ B にサインインし、別のブラウザー セッションで発生する限り、問題なくサインアウトできます。
しかし、ユーザーがWeb アプリ A にいて、別のブラウザー タブを開いて Web アプリ B に移動し、Web アプリ A からサインアウトしようとすると、「MSIS7054: SAML ログアウトが正しく完了しませんでした」というエラーが表示されます。
また、ADFS イベント ビューアーには以下の例外が表示されます。
Webapp A は dotnet コア MVC アプリです。サインアウト コードは次のとおりです。
Startup.cs
powershell - 管理者として新しくインストールされた Windows Server 2016 に NuGet をインストールできませんか?
Windows Server 2016 と ADFS 4.0 を使用しています。
AD フェデレーション サービスのトラブルシューティングの一環として、https: //adfshelp.microsoft.com/diagnosticsanalyzer/Analyze に従って NuGet とモジュールをインストールする必要があります。
これは私が実行したものとエラーです:
エラー:
上記のスクリプトは、Powershell ISE Run as Administratorを介して、ドメイン管理者としてログインして実行されました。
.net - UserName と Password による .Net Core での ADFS 4 認証
私は.netコアAPIアプリケーションを使用しています。角度のあるフロントエンドは、ユーザーのユーザー名とパスワードのみを送信します(ログインページから取得)。私の API アプリケーションは、顧客のイントラネットに基づいて ADFS 4 サービスへの認証を要求する必要があります。
問題は、ADFS 4 API を呼び出してユーザー名とパスワードを送信し、ユーザーを認証する方法です。サンプルがあれば、素晴らしいかもしれません!
この ADFS 呼び出しの目的は、ユーザーがアプリケーションの使用を承認されているかどうかを確認することです。Web アプリは独自の jwt トークンを使用してアクションを承認するかどうかを確認します。
ありがとうございます