CIM을 사용한 IdP - Salesforce 프로비저닝 방법 참고

8010 단어 Salesforcescim
  • IdP 측에서 업데이트된 사용자 속성 정보를 Salesforce와 프로비저닝하는 방법에 대한 비망록 기사.
  • 프로비저닝에는 SCIM 프로토콜을 사용한다.


  • 준비


  • Salesforce 측의 연결 응용 프로그램 설정을 수행하고 client_id, client_secret, password

  • 가정 시퀀스





    각 처리



    ① 토큰 엔드포인트에서 액세스 토큰 획득


  • 이후의 API 실행에 필요한 액세스 토큰을 취득한다.
  • 요청 예
  • GET /services/oauth2/token HTTP/1.1
    Host: login.salesforce.com
    Content-Type: application/x-www-form-urlencoded; charset=utf-8
    
    grant_type=password&client_id=YOUR_CLINET_ID&client_secret=YOUR_CLIENT_SECRET&&username=YOUR_USERNAME&password=YOUR_PASSWORD
    
  • 응답 예
  • 200 OK

  • {
        "id":"https://login.salesforce.com/id/00Dx0000000BV7z/005x00000012Q9P",
        "issued_at":"1278448832702",
        "instance_url":"https://na1.salesforce.com",
        "signature":"0CmxinZir53Yex7nE0TD+zMpvIWYGb/bdJh6XfOH6EQ=",
        "access_token":"00Dx0000000BV7z!AR8AQAxo9UfVkh8AlV0Gomt9Czx9LjHnSSpwBMmbRcgKFmxOtvxjTrKW19ye6PE3Ds1eQz3z8jr3W7_VbWmEu4Q8TVGSTHxs"
    }
    

    ② 갱신 대상 사용자 ID 취득


  • (IdP 측에 Salesforce 측의 사용자 ID가 없으면) Salesforce 측의 사용자 ID를 가져옵니다.

  • 요청 예
  • ①에서 취득한 액세스 토큰을 Authorization 헤더로 지정한다.
  • userName 에서 검색하는 경우.

  • GET /services/scim/v2/Users?filters=userName ... HTTP/1.1
    Host: sales_force_org_url
    Content-Type: application/json; charset=utf-8
    Authorization: Bearer {access_token}
    
  • 응답 예
  • HTTP/1.1 200 OK

  • {
        "schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
        "totalResults": 1,
        "Resources": [{
            "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
            "id": "user_id",
            "userName": "...",
            ...
            }]
        }],
        "startIndex": 1,
        "itemsPerPage": 20
    }
    

    ③ 사용자 속성 업데이트


  • ②에서 취득한 유저 ID를 지정하고 Salesforce측 유저 속성을 갱신한다.
  • 요청 예
  • ①에서 취득한 액세스 토큰을 Authorization 헤더로 지정한다.

  • PATCH /services/scim/v2/Users/{user_id} HTTP/1.1
    Host: sales_force_org_url
    Content-Type: application/json; charset=utf-8
    Authorization: Bearer {access_token}
    
    {
        "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
        "emails": [{
            "value": "[email protected]",
            ...
        }]
    }
    
  • 응답 예
  • HTTP/1.1 200 OK

  • {
        "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
        "id": "5171a35d82074e068ce2",
        ...
        "emails": [{
            "value": "[email protected]",
            ...
        }]
    }
    

    참고 정보


  • Manage Salesforce User Identities with SCIM
  • OAuth Endpoints
  • 사용자 이름 암호 OAuth 인증 흐름 정보
  • 자습서: SCIM 엔드포인트 프로비저닝 개발 및 계획
  • 좋은 웹페이지 즐겨찾기