2016-09-30 8 views
0

Azure Active Directoryに対して認証するLinux Pluggable Authentication Module(PAM)の作成に興味があります。 Oauth 2.0はMicrosoftがこれに使用しているものです。Architecture Direction Help:Azure Active Directory PAMモジュールの作成

Authentication Scenariosを見ると、「デーモンまたはサーバーアプリケーション」がおそらく最も理にかなっているようですが、私は肯定的ではありません。 「Web APIへのネイティブアプリケーション」も可能性がありますが、与えられたすべてのアプリケーションフローは、認証するためのポップアップブラウザーインスタンスを起動するように示されていますが、これはPAMでは不可能です。結果として、私が応答を廃棄しない限り、フローは動作していないように見え、応答を廃棄することは悪い考えです。

私の質問:

  1. このシナリオでは、ユーザーの資格情報を検証するための最良の方法は何ですか?デーモンまたはネイティブアプリですか?
  2. これを行うために私が見ている大雑把な流れは何ですか? (例:デーモンを使用している場合、ユーザーの信用を検証するためにどのような呼び出しを行うのですか?)
  3. 2FAがユーザーに対して有効になっている場合、

ありがとうございました。利用可能なオプションのどれもが本当にここに収まらないような気がして、ここに時間を費やすまで私は正しい方向に向かいたいと思っています。彼は、「ネイティブアプリケーション」を使用することを選択した

https://github.com/bureado/aad-login

:わかりました

答えて

1

bureadoのPAMあなたが「リソース所有者のパスワードの資格が付与」のOAuthとして知られているもの使用することを指します。基本的にユーザのユーザ名は&で、認証のためにAzure ADに渡します。それにはいくつかの制限があり、そのうちのいくつかはVittorioがhereと書いています。あなたが指摘した中核的な問題は、MFAが機能しないことです。

このようなシナリオの場合、Azure ADはOAuthの "Device Profile Flow"もサポートしています。ここに.NETでの操作方法を示すコードサンプルがあります:https://github.com/Azure-Samples/active-directory-dotnet-deviceprofile。私はそのルートに行くことをお勧めしたい。

+0

ありがとうございます。これは私が思ったことを確認し、必要なすべての情報を提供します。 – Doug

0

は、私はほとんど私はとにかくやって探しているものを行うために表示される次のモジュールを見つけました。これが「最良の選択肢」であるなら、私はまだ肯定的ではないので、私はこれを他の回答に開いたままにします。誰かがなぜこれが最善の選択肢なのか説明できるなら、私はそれが大好きです。

。一方、私は今のpam_ldap、またはpam_kerberosようでインポートするAADグループメンバーシップを取得しようとしているが、私はそれが動作するようになっています方法を考え出す苦労を抱えている、と別の質問投稿している:

How to write a PAM module which changes group membership?

誰もがこれを後にして同じことをしたいのですが、私たちはこの拡張機能で最終修正ソリューションを公開する予定です。それはまだそれをしないが、コードはここにGitHubの上にある:

https://github.com/CyberNinjas/aad-login