Loading
Käyttäjiesi tunnistaminen ja käyttöoikeuksien hallinta
Sisällysluettelo
Valitse suodattimet

          Ei tuloksia
          Ei tuloksia
          Tässä on joitain hakuvinkkejä

          Tarkista avainsanojesi oikeinkirjoitus.
          Käytä yleisempiä hakutermejä.
          Laajenna hakua valitsemalla vähemmän suodattimia.

          Hae koko Salesforce-ohjeesta
          OAuth 2.0 JWT Bearer -kulku palvelimien integroimiseksi

          OAuth 2.0 JWT Bearer -kulku palvelimien integroimiseksi

          Joissakin tapauksissa haluat valtuuttaa palvelimia käyttämään tietoja kirjautumatta sisään joka kerta, kun palvelimet vaihtavat tietoja keskenään. Tällöin voit käyttää OAuth 2.0 JSON Web Token (JWT) -haltijan kulkua. Tämä kulku käyttää sertifikaattia JWT-pyynnön allekirjoittamiseen eikä vaadi käyttäjiltä suoria toimenpiteitä. Tämä kulku vaatii kuitenkin, että asiakassovellus on hyväksytty aiemmin.

          Vaaditut versiot

          Käytettävissä: Salesforce Classicissa ja Lightning Experiencessa
          Käytettävissä: kaikissa versioissa

          Käyttämällä OAuth 2.0 JWT -haltijan tunnuksen kulkua, asiakassovellus lähettää JWT-valtuuden Salesforcen OAuth-valtuuden päätepisteeseen Salesforce käsittelee JWT-valtuuden, joka sisältää digitaalisen allekirjoituksen, ja luovuttaa käyttöoikeusvaltuuden sovelluksen aiemman hyväksymisen perusteella.

          Tämä esimerkki esittelee kulun eri vaiheet.

          1. Raporttipalvelu aloittaa öisen eräraporttinsa.
          2. Yhdistetty sovellus lähettää JWT-valtuuden Salesforce-valtuuksien päätepisteeseen. JWT sallii identiteetti- ja suojaustietojen jakamisen eri suojaustoimialueiden välillä.
          3. Salesforce vahvistaa JWT-valtuuden allekirjoituksen perusteella käyttämällä aiemmin määritettyä sertifikaattia ja lisäparametrejä.
          4. Mikäli JWT on voimassa ja käyttäjä tai yhdistetty sovellus on hyväksytty aiemmin, Salesforce myöntää käyttöoikeusvaltuuden. Aiempi hyväksyntä tapahtuu jollakin seuraavista tavoista:
            • Jos yhdistetyn sovelluksesi käytännöksi on valittu Pääkäyttäjän hyväksymät käyttäjät esivaltuutetaan, voit käyttää profiileja ja käyttöoikeusjoukkoja.
            • Jos yhdistetyn sovelluksesi käytännöksi on valittu Kaikki käyttäjät voivat valtuuttaa itsensä, voit käyttää loppukäyttäjien hyväksymistä ja päivitysvaltuuden tarjoamista. Asiakassovellus ei kuitenkaan tarvitse tämänhetkistä tai tallennettua päivitysvaltuutta. Asiakassovelluksen ei myöskään tarvitse välittää asiakassalaisuutta valtuuden päätepisteeseen.
            Huomautus
            Huomautus Salesforce myöntää molemmille vaihtoehdoille uuden käyttöoikeusvaltuuden vain, jos alkuperäinen käyttöoikeusvaltuus sisältää vähintään yhden vakiomuotoisen vaikutusalueen, joka ei ole refresh_token-vaikutusalue.
          5. Yhdistetty sovellus käyttää käyttöoikeusvaltuutta käyttääkseen Salesforce-palvelimella sijaitsevaa suojattua dataa.
          6. Raporttipalvelu noutaa valtuutetun datan sen öiseen raporttiinsa.
          Huomautus
          Huomautus Tämä kulku ei anna päivitysvaltuutta koskaan.

          Nyt käymme tämän valtuutuskulun läpi vaiheittain.

          Luo JWT

          Salesforce vaatii, että JWT on allekirjoitettu RSA SHA256 -algoritmilla, joka käyttää allekirjoituksen salaisuutena palvelimelle ladattua sertifikaattia. Varmista ennen tämän valtuutuskulun käyttämistä, että suoritat nämä vaiheet.

          • Lataa X509-sertifikaatti Java Key Store (JKS) -säiliöön. Sertifikaatin enimmäiskoko on 4 kt. Jos koko ylittyy, kokeile käyttää DER-koodattua tiedoston koon pienentämiseen.
          • Rekisteröi X509-sertifikaatti yhdistetylle sovellukselle. Sertifikaatti vastaa sovelluksen yksityistä avainta. Kun yhdistetty sovellus tallennetaan, sen client_id ja client_secret luodaan ja kohdistetaan sovellukselle.
          • Laadi sovellus, joka luo JWT-valtuuden, joka allekirjoitetaan X509-sertifikaatin yksityisellä avaimella. Yhdistetty sovellus käyttää sertifikaattia allekirjoituksen vahvistamiseen. JWT-tunnuksen täytyy noudattaa yleisiä muotoilusääntöjä, jotka on määritetty osoitteessa https://tools.ietf.org/html/rfc7519.
            Huomautus
            Huomautus Salesforce ei vaadi, että JWT-haltijatunnuksesi sisältäisi JWT ID (JTI) -väitteitä. Jos JWT-haltijatunnuksesi kuitenkin sisältää JTI-väitteen, Salesforce vahvistaa, että JTI-väitettä ei ole lähetetty ennen. Tämä vahvistus estää JWT-toistohyökkäykset.

          Noudata seuraavia ohjeita luodaksesi kelvollisen JWT-valtuuden.

          1. Laadi JWT-otsake seuraavassa muodossa: {"alg":"RS256"}.
          2. Base64url-koodaa JWT-otsake osoitteessa http://tools.ietf.org/html/rfc4648#page-7 kuvatulla tavalla. Lopputulos muistuttaa eyJhbGciOiJSUzI1NiJ9-arvoa.
          3. Laadi JWT-lausekkeiden JSON-lausekkeiden joukko käyttämällä seuraavia parametrejä.
            ParametriKuvaus
            iss Myöntäjän täytyy sisältää sen yhdistetyn sovelluksen OAuth-client_id, jolle rekisteröit sertifikaatin.
            aud

            Kohdeyleisö tunnistaa valtuutuspalvelimen tarkoitettuna kohdeyleisönä. Valtuutuspalvelimen täytyy vahvistaa, että kyseessä on valtuudelle tarkoitettu kohdeyleisö.

            Käytä kohdeyleisön arvon valtuutuspalvelimen URL-osoitetta: https://login.salesforce.com, https://test.salesforce.com tai https://site.force.com/customers, jos toteutetaan Experience Cloud -sivustolle.

            sub

            Jos olet toteuttamassa tätä kulkua Experience Cloud -sivustolle, aiheen täytyy sisältää käyttäjän käyttäjänimi.

            Voit käyttää aiheen (sub) sijaan päätietuetta (prn) myöhempää yhteensopivuutta varten. Jos molemmat on määritetty, käytetään prn-arvoa.

            exp Päivämäärä ja aika, jolloin valtuus vanhenee, ilmaistuna sekuntien määränä 1970-01-01T0:0:0Z UTC-aikavyöhykkeellä. Salesforce sallii 3 minuutin puskurin kellonaikojen vääristymille. Jos vanhenemisajaksi on esimerkiksi määritetty 1 735 743 600 sekuntia tai 1. tammikuuta 2025 klo 15:00:00 UTC, valtuus on edelleen voimassa tähän päivämäärään 15:03:00 UTC.
            Alla on esimerkki JWT-valtuuden JSON-lausekkeiden joukosta.
            {"iss": "3MVG99OxTyEMCQ3gNp2PjkqeZKxnmAiG1xV4oHh9AKL_rSK.BoSVPGZHQ
            ukXnVjzRgSuQqGn75NL7yfkQcyy7", 
            "sub": "my@email.com", 
            "aud": "https://login.salesforce.com", 
            "exp": "1333685628"}
          4. Suojaa JWT Claims Set Base64url:illa ilman rivinvaihtoja. Esimerkki:
            eyJpc3MiOiAiM01WRzk5T3hUeUVNQ1EzZ05wMlBqa3FlWkt4bm1BaUcxeFY0b0hoOUFLTF9yU0su
            Qm9TVlBHWkhRdWtYblZqelJnU3VRcUduNzVOTDd5ZmtRY3l5NyIsICJwcm4iOiAibXlAZW1haWwu
            Y29tIiwgImF1ZCI6ICJodHRwczovL2xvZ2luLnNhbGVzZm9yY2UuY29tIiwgImV4cCI6ICIxMzMz
            Njg1NjI4In0=
          5. Luo merkkijono salatulle JWT Headerille ja salaa JWT-lausekkeiden joukko tässä muodossa.
            encoded_JWT_Header + "." + encoded_JWT_Claims_Set
            Tässä esimerkissä salattu JWT Header on korostettu.
            eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiAiM01WRzk5T3hUeUVNQ1EzZ05wMlBqa3FlWkt4bm1BaUcxeFY0b0hoOUFLTF9yU0su
            Qm9TVlBHWkhRdWtYblZqelJnU3VRcUduNzVOTDd5ZmtRY3l5NyIsICJwcm4iOiAibXlAZW1haWwu
            Y29tIiwgImF1ZCI6ICJodHRwczovL2xvZ2luLnNhbGVzZm9yY2UuY29tIiwgImV4cCI6ICIxMzMz
            Njg1NjI4In0=
          6. Lataa X509-sertifikaatti JKS-säiliöstä.
          7. Allekirjoita tuloksena oleva merkkijono RSA SHA256 -algoritmilla.
          8. Luo merkkijono merkkijonosta tästä vaiheesta tässä muodossa.
            existing_string + "." + base64_encoded_signature
            Tässä esimerkissä base64-salattu allekirjoitus on korostettu.
            eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiAiM01WRzk5T3hUeUVNQ1EzZ05wMlBqa3FlWkt4bm1BaUcxeFY0b0hoOUFLTF9yU0su
            Qm9TVlBHWkhRdWtYblZqelJnU3VRcUduNzVOTDd5ZmtRY3l5NyIsICJwcm4iOiAibXlAZW1haWwu
            Y29tIiwgImF1ZCI6ICJodHRwczovL2xvZ2luLnNhbGVzZm9yY2UuY29tIiwgImV4cCI6ICIxMzMz
            Njg1NjI4In0=.iYCthqWCQucwi35yFs-nWNgpF5NA_a46fXDTNIY8ACko6BaEtQ9E6h4Hn1l_pcwcK​
            I_GlmfUO2dJDg1A610t09TeoPagJsZDm_H83bsoZUoI8LpAA1s-2aj_Wbysqb1j4uDToz​
            480WtEbkwIv09sIeS_-QuWak2RXOl1Krnf72mpVGS4WWSULodgNzlKHHyjAMAHiBHIDNt​
            36y2L2Bh7M8TNWiKa_BNM6s1FNKDAwHEWQrNtAeReXgRy0MZgQY2rZtqT2FcDyjY3JVQb​
            En_CSjH2WV7ZlUwsKHqGfI7hzeEvVdfOjH9NuaJozxvhPF489IgW6cntPuT2V647JWi7ng

          Tämä Java-koodi on yksinkertainen esimerkki JWT-haltijatunnuksen laatimisesta.

          import org.apache.commons.codec.binary.Base64;
          import java.io.*; 
          import java.security.*; 
          import java.text.MessageFormat;  
          
          public class JWTExample {
          
            public static void main(String[] args) {
          
              String header = "{\"alg\":\"RS256\"}";
              String claimTemplate = "'{'\"iss\": \"{0}\", \"sub\": \"{1}\", \"aud\": \"{2}\", \"exp\": \"{3}\", \"jti\": \"{4}\"'}'";
          
              try {
                StringBuffer token = new StringBuffer();
          
                //Encode the JWT Header and add it to our string to sign
                token.append(Base64.encodeBase64URLSafeString(header.getBytes("UTF-8")));
          
                //Separate with a period
                token.append(".");
          
                //Create the JWT Claims Object
                String[] claimArray = new String[5];
                claimArray[0] = "3MVG99OxTyEMCQ3gNp2PjkqeZKxnmAiG1xV4oHh9AKL_rSK.BoSVPGZHQukXnVjzRgSuQqGn75NL7yfkQcyy7";
                claimArray[1] = "my@email.com";
                claimArray[2] = "https://login.salesforce.com";
                claimArray[3] = Long.toString( ( System.currentTimeMillis()/1000 ) + 300);
                claimArray[4]=<JTI>
                MessageFormat claims;
                claims = new MessageFormat(claimTemplate);
                String payload = claims.format(claimArray);
          
                //Add the encoded claims object
                token.append(Base64.encodeBase64URLSafeString(payload.getBytes("UTF-8")));
          
                //Load the private key from a keystore
                KeyStore keystore = KeyStore.getInstance("JKS");
                keystore.load(new FileInputStream("./path/to/keystore.jks"), "keystorepassword".toCharArray());
                PrivateKey privateKey = (PrivateKey) keystore.getKey("certalias", "privatekeypassword".toCharArray());
          
                //Sign the JWT Header + "." + JWT Claims Object
                Signature signature = Signature.getInstance("SHA256withRSA");
                signature.initSign(privateKey);
                signature.update(token.toString().getBytes("UTF-8"));
                String signedPayload = Base64.encodeBase64URLSafeString(signature.sign());
          
                //Separate with a period
                token.append(".");
          
                //Add the encoded signature
                token.append(signedPayload);
          
                System.out.println(token.toString());
          
              } catch (Exception e) {
                  e.printStackTrace();
              }
            }
          }

          Pyydä käyttöoikeusvaltuutta

          Yhdistetty sovellus lähettää pyynnön Salesforce-instanssin valtuuksien päätepisteeseen pyytääkseen käyttöoikeusvaltuutta. Sen viesti sisältää JWT-valtuuden.

          Tämä esimerkki näyttää esimerkin valtuuden pyynnöstä.

          POST /services/oauth2/token HTTP/1.1
          Host: login.example.com
          Content-Type: application/x-www-form-urlencoded
          
          grant_type= urn:ietf:params:oauth:grant-type:jwt-bearer&
          assertion=eyJpc3MiOiAiM01WRz...[omitted for brevity]...ZT
          Tärkeää
          Tärkeää Kun kehität OAuth-integraatioita, välitä aina luottamuksellisia tietoja POST-pyynnön tekstiosaan tai pyynnön otsakkeeseen. Älä käytä URL-kyselyn merkkijonossa GET-parametrejä välittääksesi luottamuksellisia tietoja. Luottamuksellisiin tietoihin sisältyvät käyttäjänimet, salasanat, OAuth-valtuudet, asiakassalaisuudet ja kaikki henkilötiedot. Lisätietoja tietoturvan parhaista käytännöistä on kohdassa Luottamuksellisten tietojen tallentaminen Secure Coding Guide -oppaassa.

          Lisää viestiin nämä parametrit.

          Parametri Kuvaus
          grant_type Käytä näitä arvoja apurahatyypille: urn:ietf:params:oauth:grant-type:jwt-bearer.
          assertion Vahvistus on koko JWT-arvo.
          format

          (Valinnainen) Käytä määrittääksesi odotetun palautuksen muoto. Tämä parametri korvaa pyynnön otsakkeen. Näitä muotoja tuetaan.

          • urlencoded
          • json (oletus)
          • xml

          Vaikutusalue-parametri

          Et voi määrittää vaikutusalueita JWT-haltijan valtuuden kulussa. Vaikutusalueet myönnetään yhdistetyn sovelluksen Sallitut käyttäjät -käytännön tai organisaatiosi API-käyttöoikeuksien hallinta-asetusten perusteella, kuten alla olevassa taulukossa esitetään.

          Asetus Tulos
          Sallitut käyttäjät -käytäntö: Kaikki käyttäjät voivat valtuuttaa itsensä Kun valtuutus on suoritettu onnistuneesti, käyttöoikeusvaltuuden palauttamat vaikutusalueet saadaan aiemmin hyväksytyistä vaikutusalueista.
          Sallitut käyttäjät -käytäntö: Pääkäyttäjän hyväksymät käyttäjät esivaltuutetaan Yhdistetylle sovellukselle kohdistetut vakiomuotoiset ja mukautetut vaikutusalueet palautetaan käyttöoikeusvaltuudella.
          API-käyttöoikeuden hallinta: Yhdistettyjen sovellusten salliminen organisaatiossasi

          Yhdistetylle sovellukselle kohdistetut vakiomuotoiset ja mukautetut vaikutusalueet palautetaan käyttöoikeusvaltuudella. Jos sallit yhdistetyt sovellukset organisaatiossasi etkä saa odotettuja vaikutusalueita, noudata seuraavia ohjeita.

          • Kirjoita Määritykset-valikon Pikahaku-kenttään OAuth ja valitse Yhdistettyjen sovellusten OAuth-käyttö.
          • Napsauta Estä sallitun yhdistetyn sovelluksen vierestä.
          • Napsauta Kumoa esto sallitun yhdistetyn sovelluksen vierestä.

          Salesforce myöntää käyttöoikeusvaltuuden

          OAuth 2.0 JWT -haltijan ja SAML-vahvistuksen haltijan kulkujen pyynnöt tutkivat käyttäjän puolesta kaikki aikaisemmat hyväksymiset, jotka sisältävät päivitysvaltuuden. Jos Salesforce löytää vastaavia hyväksyntöjä, se yhdistää hyväksyttyjen vaikutusalueiden arvot. Sen jälkeen Salesforce tarjoaa käyttöoikeusvaltuuden. Jos Salesforce ei löydä aiempia hyväksyntöjä, joka sisälsivät päivitysvaltuuden tai minkä tahansa käytettävissä olevista vaikutusalueista, pyyntö epäonnistuu valtuuttamattomana.

          Salesforce-instanssi lähettää vastauksen yhdistetylle sovellukselle onnistuneen vahvistuksen jälkeen. OAuth 2.0 JWT -haltijan valtuuden kulun valtuuden vastaus noudattaa samaa formaattia kuin valtuutuskoodin kulku, vaikka päivitysvaltuutta ei koskaan myönnetä.

          Tämä esimerkki näyttää Salesforcelta saadun vastauksen.

          {"access_token":"00Dxx0000001gPL!AR8AQJXg5oj8jXSgxJfA0lBog.
          39AsX.LVpxezPwuX5VAIrrbbHMuol7GQxnMeYMN7cj8EoWr78nt1u44zU31
          IbYNNJguseu",
          "scope":"web openid api id","instance_url":"
          https://yourInstance.salesforce.com","id":"
          https://yourInstance.salesforce.com
          /id/00Dxx0000001gPLEAY/005xx000001SwiUAAS","token_type":"Bearer"}

          Vastauksen runko sisältää seuraavat parametrit:

          ParametriKuvaus
          access_token OAuth-valtuus, jota yhdistetty sovellus käyttää pyytääkseen pääsyä suojattuun resurssiin asiakassovelluksen puolesta. Käyttöoikeusvaltuus voi sisältää muita käyttöoikeuksia vaikutusalueiden muodossa.
          token_type Bearer-valtuuden tyyppi, jota käytetään kaikille vastauksille, jotka sisältävät käyttöoikeusvaltuuden.
          scope Vaikutusalueet määräytyvät yhdistetyn sovelluksen Sallitut käyttäjät -käytännön tai organisaatiosi API-käyttöoikeuksien hallinta -asetusten mukaan. Lisätietoja on kohdassa Vaikutusalue-parametri.
          instance_url URL-osoite, joka osoittaa käyttäjän organisaation instanssin. Esimerkki: https://yourInstance.salesforce.com/.
          id Identiteetti-URL-osoite, jota voidaan käyttää käyttäjän tunnistamiseen ja käyttäjän lisätietojen noutamiseen. Lisätietoja on kohdassa Tunnus-URL-osoitteet.
          sfdc_site_url Jos käyttäjä on Experience Cloud -sivuston jäsen, yhteisön URL-osoite tarjotaan.
          sfdc_site_id Jos käyttäjä on Experience Cloud -sivuston jäsen, käyttäjän sivuston tunnus tarjotaan. Experience Cloud -sivustoilla tämä kulku sisältää "sfdc_site_id"-arvon valtuuksien päätepisteessä. Tämä sivuston tunnus saatetaan vaatia Connect REST API -pyynnöissä.

          Käytä suojattua dataa

          Kun yhdistetty sovellus on vastaanottanut access_token, se voi välittää sen haltijatunnuksena Valtuutus-header-pyynnössä. Tämä esimerkki näyttää Experience Cloud -sivuille lähetetyn REST API -kutsun:

          
                    https://site.force.com/customers/services/data/v32.0/ -H 
          "Authorization: Bearer 00D50000000IehZ\!AQcAQH0dMHZfz972Szmpkb58urFRkgeBGsxL_QJWwYMfAbUeeG7c1E6 LYUfiDUkWe6H34r1AAwOR8B8fLEz6n04NPGRrq0FM"
                  
           
          Ladataan
          Salesforce Help | Article