SAML을 Microsoft ADFS와 Windows Server 2012와 함께 구성하는 방법

다음 절차는 Mattermost에 SAML 2.0을 Microsoft ADFS와 구성하는 단계를 제공합니다.

시작하기 전에

시작하기 전에 SAML 연결을 암호화하기 위한 암호화 인증서를 생성해야합니다.

  1. Bash script 를 사용할 수 있습니다. 이 스크립트는 GitHub의 mattermost/docs 저장소에서 가져오거나 다른 적합한 방법을 사용할 수 있습니다.

  2. 생성된 두 파일을 저장합니다. 이 파일들은 개인 키와 공개 키입니다. 시스템 콘솔에서 서비스 제공자 개인 키서비스 제공자 공개 인증서 로 참조됩니다.

다음은 Mattermost에 ADFS를 사용하기 위한 기본 요구 사항입니다: - 사용자 모두가 특정 이메일과 사용자 이름 속성을 갖고 있는 Active Directory 인스턴스. 3.3 이전의 Mattermost 서버에서는 사용자가 이름 및 성을 지정해야 합니다. - Microsoft Server가 실행 중이어야 합니다. 이 안내서에서 사용된 스크린샷은 Microsoft Server 2012R2에서 가져왔지만, 유사한 단계는 다른 버전에서도 작동해야 합니다. - ADFS 로그인 페이지에 서명할 SSL 인증서가 필요합니다. - Microsoft Server에 ADFS가 설치되어 있어야 합니다. ADFS의 배포 및 구성에 대한 자세한 가이드는 이 문서 에서 찾을 수 있습니다.

ADFS 설치시, ADFS 엔드포인트 섹션에서 SAML 2.0/W-Federation URL 값 또는 이 안내서에서의 SAML SSO URL 엔드포인트 값을 메모해 두세요. 기본 설정을 선택한 경우, 이 값은 /adfs/ls/ 일 것입니다.

신뢰 파트너 신뢰 추가

  1. ADFS 관리 사이드바에서 AD FS > 신뢰 관계 > 신뢰 파트너 신뢰 로 이동한 다음 신뢰 파트너 신뢰 추가 를 선택합니다. 새로운 신뢰 파트너 신뢰를 추가하는 구성 마법이 열립니다.

    ../_images/adfs_1_add_new_relying_party_trust.png
  2. 시작 을 선택하여 환영 화면에서 시작합니다.

    ../_images/adfs_2_start_wizard.png
  3. 데이터 원본 선택 화면에서 수동으로 신뢰 파트너에 대한 데이터 입력 을 선택합니다.

    ../_images/adfs_3_select_data_source.png
  4. 표시 이름 지정 화면에 Mattermost 와 같이 신뢰를 인식할 수 있는 표시 이름 을 입력한 다음 원하는 노트를 추가합니다.

    ../_images/adfs_4_specify_display_name.png
  5. 프로필 선택 화면에서 AD FS 프로필 을 선택합니다.

    ../_images/adfs_5_choose_profile.png
  6. 인증서 구성 화면에서 인증서 설정을 기본 값으로 남겨 둡니다.

    ../_images/adfs_6_configure_certificate_default.png

그러나 SAML 연결에 대한 암호화를 설정하려면 찾아보기 를 선택하고, 서비스 공급자 공개 인증서를 업로드하세요.

../_images/adfs_7_configure_certificate_encryption.png
  1. URL 구성 화면에서 SAML 2.0 WebSSO 프로토콜 지원 활성화 를 선택한 다음, SAML 2.0 SSO 서비스 URL 을 입력합니다. 일반적으로 <your-mattermost-url> 과 일치해야 하는 Mattermost 사이트 URL 처럼 사용할 수 있습니다.

    ../_images/adfs_8_configure_url.png
  2. 식별자 구성 화면에서 신뢰 파트너 신뢰 식별자 (이것은 IdP 발급자 URL 로도 알려집니다)를 https:// <your-idp-url>/adfs/services/trust 형식으로 입력한 다음 추가 를 클릭합니다.

    ../_images/adfs_9_configure_identifiers.png
  3. 지금 다중 인증 활성화 화면에서 다중 인증을 활성화할 수 있습니다. 이는 이 문서의 범위를 벗어납니다.

    ../_images/adfs_10_configure_mfa.png
  4. 발급 승인 규칙 선택 화면에서 이 신뢰 파트너로 모든 사용자의 액세스 허용 을 선택합니다.

    ../_images/adfs_11_authorization.png
  5. 신뢰 추가 준비 화면에서 설정을 검토합니다.

    ../_images/adfs_12_ready_to_add_trust.png
  6. 마침 화면에서 마침 을 선택한 다음 닫기 를 선택합니다. 구성 마법을 빠져나오면 Claim Rules 편집기가 열립니다.

    ../_images/adfs_13_finish_trust.png

클레임 규칙 생성

  1. Claim Rules 편집기발급 변환 규칙 섹션에서 규칙 추가… 를 선택하여 추가 변환 클레임 규칙 마법사 를 엽니다.

    ../_images/adfs_14_claim_rules_editor.png
  2. 규칙 유형 선택 화면에서 드롭다운 메뉴에서 LDAP 속성을 클레임으로 보내기 를 선택한 다음 다음 을 선택합니다.

    ../_images/adfs_15_choose_rule_type.png
  3. 클레임 규칙 구성 화면에서 원하는 클레임 규칙 이름 을 입력하고, Active Directory속성 저장소 로 선택한 후 다음을 완료합니다:

  • LDAP 속성 열에서 E-Mail-Addresses 를 선택합니다. 발신 클레임 유형 에서 Email 을 입력합니다.

  • LDAP 속성 열에서 E-Mail-Addresses 를 선택합니다. 발신 클레임 유형 에서 Name ID 를 입력합니다.

  • LDAP 속성 열에서 Given-Name 를 선택합니다. 발신 클레임 유형 에서 FirstName 을 입력합니다.

  • LDAP 속성 열에서 Surname 를 선택합니다. 발신 클레임 유형 에서 LastName 을 입력합니다.

  • LDAP 속성 열에서 SAM-Account-Name 를 선택합니다. 발신 클레임 유형 에서 Username 을 입력합니다.

FirstNameLastName 속성은 선택 사항입니다.

규칙을 추가하려면 완료 를 선택합니다.

발신 클레임 유형 열의 항목은 다른 것으로 선택할 수 있습니다. 하이픈을 포함할 수 있지만 공백은 포함할 수 없습니다. 이후에 Mattermost의 해당 필드와 매핑하는 데 사용됩니다.

../_images/adfs_16_configure_claim_rule.png
  1. 규칙 추가 를 선택하여 다른 새 규칙을 생성합니다.

  2. 규칙 유형 선택 화면에서 드롭다운 메뉴에서 수신 클레임 변환 을 선택한 다음 다음 을 선택합니다.

    ../_images/adfs_17_transformation_of_incoming_claim.png
  3. 클레임 규칙 구성 화면에서 원하는 클레임 규칙 이름 을 입력한 다음:

  • 수신 클레임 유형Name ID 를 선택합니다.

  • 수신 이름 ID 형식Unspecified 을 선택합니다.

  • 발신 클레임 유형E-Mail Address 를 선택합니다.

모든 클레임 값을 통과 를 선택한 다음 완료 를 선택합니다.

../_images/adfs_18_configure_incoming_claim.png
  1. 클레임 규칙을 생성하려면 마침 을 선택한 다음 규칙 생성 을 선택합니다.

  2. 관리자 권한으로 Windows PowerShell을 열고, 다음 명령을 실행합니다:

Set-ADFSRelyingPartyTrust -TargetName <display-name> -SamlResponseSignature "MessageAndAssertion"

<display-name> “은 신뢰 파트너 신뢰를 추가할 때 단계 4에서 지정한 이름입니다. 이 예에서 ” <display-name> “은 “mattermost”가 될 것입니다.

이 작업은 SAML 메시지에 서명을 추가하여 검증을 성공적으로 수행합니다.

아이덴티티 제공자 인증서 내보내기

다음으로, 나중에 Mattermost에 업로드될 아이덴티티 제공자 인증서를 내보냅니다. SAML 구성을 완료하려면 다음 단계를 수행하십시오.

  1. ADFS 관리 사이드바에서 AD FS > 서비스 > 인증서 로 이동한 다음 토큰 서명 아래의 인증서를 두 번 클릭합니다. 또는 필드를 마우스 오른쪽 버튼으로 클릭한 후 인증서 보기 를 선택할 수 있습니다.

    ../_images/adfs_19_export_idp_cert_start.png
  2. 인증서 화면에서 세부정보 탭으로 이동한 다음 파일로 복사 를 선택한 후 확인 을 선택합니다. 이렇게 하면 인증서 내보내기 마법사 가 열립니다.

    ../_images/adfs_20_export_idp_cert_copy.png
  3. 인증서 내보내기 마법사 화면에서 다음 을 선택한 다음 Base-64 인코딩된 X.509 (.CER) 옵션을 선택한 다음 다시 다음 을 선택합니다.

    ../_images/adfs_21_export_idp_cert_wizard.png
  4. 인증서 내보내기 마법사 화면에서 찾아보기 를 선택하여 아이덴티티 제공자 인증서를 내보낼 위치를 지정한 다음 파일 이름을 지정합니다.

    ../_images/adfs_21-2_export_idp_cert_wizard.png
  5. 저장 을 선택합니다. 인증서 내보내기 마법사 화면에서 파일 경로가 올바른지 확인한 다음 다음 을 선택합니다.

  6. 인증서 내보내기 마법사 완료 에서 완료 를 선택한 다음 내보내기가 성공적으로 수행되었음을 확인하려면 확인 을 선택합니다.

    ../_images/adfs_21-3_export_idp_cert_wizard.png

Mattermost를 위한 SAML 로그인 구성

“A domain.com”>https://federationmetadata/2007-06/FederationMetadata.xml>을 루트 URL에 추가하여 메타데이터 URL을 만듭니다.

다음으로 Mattermost 서버를 시작하고 시스템 관리자로 Mattermost에 로그인합니다. 시스템 콘솔 > 인증 > SAML 로 이동하여 메타데이터 URL을 아이덴티티 제공자 메타데이터 URL 필드에 붙여넣은 다음 IdP에서 SAML 메타데이터 가져오기 를 선택합니다.

이렇게 하면 SAML SSO URL아이덴티티 제공자 발행자 URL 필드가 자동으로 채워지며 아이덴티티 제공자 공개 인증서가 서버에서 다운로드되어 로컬로 설정됩니다.

또는 다음 필드를 수동으로 입력할 수 있습니다:
  • SAML SSO URL : ADFS에서 이전에 지정한 SAML 2.0/W-Federation URL .

  • 아이덴티티 제공자 발행자 URL : ADFS에서 지정한 신뢰 파트너 신분 확인자 .

  • 아이덴티티 제공자 공개 인증서 : 이전에 다운로드한 X.509 공개 인증서 .

    ../_images/adfs_22_mattermost_basics.png
  1. Mattermost를 구성하여 서명을 확인합니다. Service Provider Login URL 은 이전에 ADFS에서 지정한 SAML 2.0 SSO 서비스 URL입니다.

    ../_images/adfs_23_mattermost_verification.png
  2. 서비스 공급자 개인 키 및 서비스 공급자 공개 인증서를 업로드하여 암호화를 활성화합니다.

    ../_images/adfs_24_mattermost_encryption.png
  3. Mattermost를 구성하여 서비스 공급자 개인 키를 사용하여 SAML 요청에 서명합니다.

  4. SAML Assertions의 속성을 설정하여 Mattermost에서 사용자 정보를 업데이트합니다. 이메일 및 사용자 이름의 속성은 필수이며 이전에 ADFS에 입력한 값과 일치해야 합니다. 자세한 내용은 SAML 구성 설정 을 참조하십시오.

3.3 및 이전 버전의 Mattermost 서버의 경우, FirstNameLastName 속성도 필수 필드입니다.

../_images/adfs_25_mattermost_attributes.png
  1. (선택 사항) 로그인 버튼 텍스트를 사용자 정의합니다.

../_images/adfs_26_mattermost_login_button.png
  1. 저장 을 선택합니다.

  2. (선택 사항) FirstNameLastName 속성을 구성한 경우, 시스템 콘솔 > 사이트 구성 > 사용자 및 팀 으로 이동하여 팀원 이름 표시이름과 성 표시 로 설정합니다. 이렇게 하면 더 좋은 사용자 경험을 제공할 수 있습니다.

SAML SSO가 성공적으로 활성화되었는지 확인하려면 프로필 이미지를 클릭하여 시스템 관리자 계정을 이메일에서 SAML 기반 인증으로 전환한 다음 SAML 자격 증명으로 로그인하여 전환이 완료되었는지 확인하십시오.

사용자들에게 마이그레이션이 어떻게 진행될지에 대한 공지를 게시하는 것이 좋습니다.

또한 ADFS에 대한 SAML을 구성하려면 config.json 파일을 편집하여 SAML 구성 설정 에 따라 SAML을 활성화해야 합니다. 변경 사항이 적용되려면 Mattermost 서버를 다시 시작해야 합니다.