114.4. Ansible을 사용하여 IdM 사용자가 외부 IdP를 통해 인증할 수 있음


ansible-freeipa 모듈을 사용하여 IdM(Identity Management) 사용자가 외부 ID 공급자(IdP)를 통해 인증할 수 있습니다. 이렇게 하려면 이전에 생성한 외부 IdP 참조를 IdM 사용자 계정과 연결합니다. Ansible을 사용하여 github_idp 라는 외부 IdP 참조를 idm-user-with-external-idp 라는 IdM 사용자와 연결하려면 이 절차를 완료합니다. 절차의 결과로 사용자는 my_github_account_name github ID를 사용하여 IdM에 idm-user-with-external-idp 로 인증할 수 있습니다.

사전 요구 사항

  • IdM 클라이언트 및 IdM 서버는 RHEL 8.7 이상을 사용하고 있습니다.
  • IdM 클라이언트 및 IdM 서버는 SSSD 2.7.0 이상을 사용하고 있습니다.
  • IdM에 외부 IdP에 대한 참조가 생성되어 있습니다. Ansible을 사용하여 외부 ID 공급자에 대한 참조 생성을 참조하십시오.
  • 다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.

    • Ansible 버전 2.14 이상을 사용하고 있습니다.
    • Ansible 컨트롤러에 ansible-freeipa 패키지가 설치되어 있습니다.
    • RHEL 8.10 이상을 사용하고 있습니다.
    • 이 예제에서는 ~/MyPlaybook/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
    • 이 예제에서는 secret.yml Ansible 자격 증명 모음이 ipaadmin_password 를 저장하는 것으로 가정합니다.

절차

  1. Ansible 제어 노드에서 enable-user-to-authenticate-via-external-idp.yml 플레이북을 생성합니다.

    ---
    - name: Ensure an IdM user uses an external IdP to authenticate to IdM
      hosts: ipaserver
      become: false
      gather_facts: false
    
      tasks:
      - name: Retrieve Github user ID
        ansible.builtin.uri:
          url: “https://api.github.com/users/my_github_account_name”
          method: GET
          headers:
            Accept: “application/vnd.github.v3+json”
        register: user_data
    
      - name: Ensure IdM user exists with an external IdP authentication
        ipauser:
          ipaadmin_password: "{{ ipaadmin_password }}"
          name: idm-user-with-external-idp
          first: Example
          last: User
          userauthtype: idp
          idp: github_idp
          idp_user_id: my_github_account_name
  2. 파일을 저장합니다.
  3. Ansible 플레이북을 실행합니다. Playbook 파일, secret.yml 파일을 보호하는 암호를 저장하는 파일, 인벤토리 파일을 지정합니다.

    $ ansible-playbook --vault-password-file=password_file -v -i inventory enable-user-to-authenticate-via-external-idp.yml

검증

  • IdM 클라이언트에 로그인하고 idm-user-with-external-idp 사용자에 대한 ipa user-show 명령의 출력이 IdP에 대한 참조를 표시하는지 확인합니다.

    $ ipa user-show idm-user-with-external-idp
    User login: idm-user-with-external-idp
    First name: Example
    Last name: User
    Home directory: /home/idm-user-with-external-idp
    Login shell: /bin/sh
    Principal name: idm-user-with-external-idp@idm.example.com
    Principal alias: idm-user-with-external-idp@idm.example.com
    Email address: idm-user-with-external-idp@idm.example.com
    ID: 35000003
    GID: 35000003
    User authentication types: idp
    External IdP configuration: github
    External IdP user identifier: idm-user-with-external-idp@idm.example.com
    Account disabled: False
    Password: False
    Member of groups: ipausers
    Kerberos keys available: False

추가 리소스

  • idp ansible-freeipa 업스트림 문서
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.