로컬 환경에서 테스트를 위해 시작할 수 있는 SAML-IdP 서버

동기



SAML 인증의 학습, 테스트를 위해 로컬로 기동하는 서버를 원했습니다만, 일본어로 해설하고 있는 페이지가 적기 때문에, 확인 방법을 여기에 기재합니다.

  • htps //w w. 음 pmjs. 코 m / Pac 게이지 / mml-dp
  • 명령줄에서 시작할 수 있는 테스트용 IdP(Identity Provider)입니다.

  • 인증서를 만들기 위해 openssl을 사용합니다. gitbash 등으로 조작하십시오.

  • ※SAML 인증을 실시하는 간단한 샘플을 작성했습니다.
    htps : // 이 m / 무라 스케 / ms / 9bf5 또는 8083d1입니다 3d d66f

    테스트용 IdP(saml-idp) 설치 및 구성


  • npm에서 설치하기 위해 먼저 package.json을 만듭니다.
  • npm init -y
    
  • saml-idp (package.json에 추가)를 설치합니다.
  • npm i -D saml-idp
    
  • IdP용 인증서 파일 작성(IdP의 필수 파일)
  • 만든 파일을 프로젝트 루트에 넣습니다. (루트 디렉토리에서 명령을 실행하면 복사 할 필요가 없습니다.)

  • openssl req -x509 -new -newkey rsa:2048 -nodes  -keyout idp-private-key.pem -out idp-public-cert.pem -days 7300
    Generating a RSA private key
    
  • Country Name(국가), State or Province Name(현명), Locality Name(도시명) 등은 테스트 용도이므로 적당하게 입력해 주십시오.
  • 출력할 파일 이름(idp-public-cert.pem)은 saml-idp의 기본 이름을 지정합니다. 변경하는 경우 시작 시 명령행 스펙을 수정해야 합니다.

  • 작성 명령 샘플
    $ openssl req -x509 -new -newkey rsa:2048 -nodes  -keyout idp-private-key.pem -out idp-public-cert.pem -days 7300
    Generating a RSA private key
    .....+++++
    ......+++++
    writing new private key to 'idp-private-key.pem'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [AU]:JP
    State or Province Name (full name) [Some-State]:Aichi
    Locality Name (eg, city) []:Nagoya
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:
    Organizational Unit Name (eg, section) []:
    Common Name (e.g. server FQDN or YOUR name) []:Test Identity Provider
    Email Address []:[email protected]
    
  • 시작 스크립트 등록
  • package.json의 "scripts"에 테스트용 IdP 시작 스크립트를 추가합니다.

  • "saml-idp": "saml-idp --acs http://localhost:7000/auth/saml --aud mock-audience"
    

    동작 확인

    테스트용 Idp 서버(saml-idp)를 기동합니다. port : 7000 번에 Listen합니다 $npm run saml-idp > [email protected] saml-idp C:\Users\test\Documents\git\auth\simple-saml-auth > saml-idp --acs http://localhost:7000/auth/saml --aud mock-audience Listener Port: localhost:7000 HTTPS Enabled: false [Identity Provider] Issuer URI: urn:example:idp Sign Response Message: true Encrypt Assertion: false Authentication Context Class Reference: urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport Authentication Context Declaration: None Default RelayState: None [서비스 제공자] Issuer URI: None Audience URI: mock-audience ACS URL: http://localhost:7000/auth/saml SLO URL: None Trust ACS URL in Request: true Starting IdP server on port localhost:7000... IdP Metadata URL: http://localhost:7000/metadata SSO Bindings: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST => http://localhost:7000/saml/sso urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect => http://localhost:7000/saml/sso IdP server ready at http://localhost:7000 브라우저로 액세스하여 아래와 같은 화면이 나오면 OK입니다.

    좋은 웹페이지 즐겨찾기