LoginSignup
2
1

More than 5 years have passed since last update.

UbuntuでAzure AD認証

Last updated at Posted at 2017-03-02

UbuntuでAzura AD認証をできるようにしてみた。

必要なもの

インストール

Goの環境が整っていることが前提。

1) pam-exec-oauth2をビルド
2) /opt/pam-exec-oauth2にpam-exec-oauth2をコピー
3) /opt/pam-exec-oauth2にpam-exec-oauth2.yamlを作成

go get github.com/shimt/pam-exec-oauth2

PREFIX=/opt/pam-exec-oauth2

sudo mkdir $PREFIX
sudo cp go/bin/pam-exec-oauth2 $PREFIX/pam-exec-oauth2
sudo touch $PREFIX/pam-exec-oauth2.yaml
sudo chmod 755 $PREFIX/pam-exec-oauth2
sudo chmod 600 $PREFIX/pam-exec-oauth2.yaml

設定

PAM

/etc/pam.d/common-authに以下を追加。

auth sufficient pam_exec.so expose_authtok /opt/pam-exec-oauth2/pam-exec-oauth2

pam-exec-oauth2.yaml

/opt/pam-exec-oauth2/pam-exec-oauth2.yamlを環境に合わせて修正

{
    client-id: "xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    client-secret: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    redirect-url: "urn:ietf:wg:oauth:2.0:oob",
    scopes: ["email"],
    endpoint-auth-url: "https://login.windows.net/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/oauth2/authorize",
    endpoint-token-url: "https://login.windows.net/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/oauth2/token",
    extra-parameters: {
        resource: "https://graph.windows.net/"
    },
    username-format: "%s@example.org",
}

テスト

環境変数PAM_USERにユーザ名を設定し、標準入力からパスワードを入力する。

$?0であれば認証成功。

# PAM_USER=username /opt/pam-exec-oauth2/pam-exec-oauth2
usernameのパスワード
# echo $?
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1