私は Azure の Active Directory サービスを初めて使用しており、その抽象化は現時点では私にとって少々難解です。私がやろうとしているのは、すべての AWS EC2 サーバー (Linux) を LDAP (SSH 接続用) 経由で認証することです。
SLDAP を正常にセットアップし、パブリック IP アドレスはすでに生成されており、FQDN (dc.mydomain.com) にバインドしました。AWS EC2 Linux サーバーに、SSH AD 認証を実行できるように sssd と realmd をインストールしました。
以下は、sldap が正しく動作していることを確認するために使用する ldap 文字列です。
ldapsearch -H ldaps://directory.mydomain.com:636 -Z -d 5 -x -b "dc=mydomain,dc=com" -D "[email protected]" -W
上記のコマンドは、Azure AD にリストされている DN、CN、OU、DC に関するすべての情報を提供します。
binddn
CENTOS7 で PAM を使用しようとすると、 がいずれにも解決されないようです。ただし、ldapsearch の結果に表示されるのは私が使用している であるためresults()
、確かに存在します。dn
MS Azure にはこれに関して制限や制約がありますか?
答え1
セキュア LDAP を使用した Azure AD DS に制限があることを記載したドキュメントはありません。
ドキュメントには、インターネット経由でセキュア LDAP を使用してマネージド ドメインにアクセスできるとだけ記載されています。また、Azure AD に対する認証にアプリケーションで使用できるかどうかも記載されていません。
代替案として、LDAPSを使用したAzure AD DSの代わりに、以下のリンクからLinuxログイン用のAzure ADの使用を検討することもできます。サンプルコードもこちらから入手できます。ここ。
https://channel9.msdn.com/Blogs/Open/Azure AD を使用した Linux ログイン
アップデート
これは、RHEL 7.3 の SSH ログインに Azure AD を使用することで機能します。以下は、Linux ログインで Azure AD を機能させるためのステップ バイ ステップ ガイドです。
前提条件
- Azure ADディレクトリが作成され、ユーザーが存在します
- Linux VMにNode.jsとnpmがインストールされています
- ディレクトリアプリケーションが作成され(ネイティブクライアントタイプ)、クライアントIDを取得しました
- PAMディストリビューションにはpam_exec.soが含まれています
ユーザープロビジョニング
Azure AD アカウントを追加するには、次のコマンドを使用する必要があります。これにより、ログインに使用するユーザーが NSS に表示されるようになります。
sudo useradd -m <user>
インストール
tarファイルは以下からダウンロードできます。https://github.com/bureado/aad-loginそして:
sudo tar xzf aad-login_0.1.tar.gz -C /
cd /opt/aad-login
sudo npm install
設定
- /opt/aad-login/aad-login.jsを開き、次の項目を変更します。
var ディレクトリ = '********.onmicrosoft.com'; // ディレクトリのドメイン名
var clientid = '****-****-*****-*****-***********'; //Azure AD に登録されたアプリケーションのクライアント ID
権限ホスト URL: 'https://login.microsoftonline.com' //エンドポイントの最新のURL
- /etc/pam.d/sshdを開き、次のルールを追加します。
認証は十分 pam_exec.so expose_authtok /usr/local/bin/aad-login
注記:Utuntuの場合は、/etc/pam.d/common-authにルールを追加する必要があります。
CentOS 7.x (およびその他の SELinux 対応ディストリビューション) では、次のコマンドを実行してポリシーを無効にする必要があります。
sudo 0 を設定します