ବିଷୟବସ୍ତୁକୁ ଯାଆନ୍ତୁ

ମୁକ୍ତ ମାନକ ଉପରେ, ଆପଣଙ୍କ ଆପ ପାଇଁ ପରିଚୟ

ଆପଣଙ୍କୁ ଭିତରକୁ ନେଇଯାଏ।

ଗୋଟିଏ ଆକାଉଣ୍ଟ। ପ୍ରତ୍ୟେକ ଦ୍ୱାର।

Usher Identity OpenID Connect ଓ OAuth 2.1 ଦ୍ୱାରା ଲୋକଙ୍କୁ ଆପଣଙ୍କ ଆପରେ ସାଇନ ଇନ କରାଏ: ପାସକୀ, କୋଡ, ସୋସିଆଲ ସାଇନ-ଇନ ଓ ସଂସ୍ଥା, ଏବଂ ପ୍ରତ୍ୟେକ ଏନଭାଇରନମେଣ୍ଟ ଅନ୍ୟ ସମସ୍ତଙ୍କଠାରୁ ଅଲଗା।

ଆରମ୍ଭ କରିବା ମାଗଣା। ଆପଣଙ୍କ ନିଜ ସର୍ଭରରେ ମଧ୍ୟ ଚାଲେ।

ଲବି

ଏକ ସାଇନ‑ଇନ ପୃଷ୍ଠା ଯାହା ସ୍ୱାଗତ କରେ, ଜେରା ନୁହେଁ।

ଲବି ହେଉଛି Usher Identity ଆପଣଙ୍କ ଆପ ପାଇଁ ହୋଷ୍ଟ କରୁଥିବା ସାଇନ-ଇନ ପୃଷ୍ଠା। ବ୍ୟକ୍ତି କେଉଁଠିକୁ ଯାଉଛନ୍ତି ଏହା ସବୁବେଳେ କହେ, ଏବଂ ଯେଉଁ ଆପ ପଠାଉ ପଛେ ଏହା ସମାନ ଦେଖାଯାଏ, ତେଣୁ ଲୋକେ ଏହାକୁ ଭରସା କରିବା ଶିଖନ୍ତି।

ଆଗକୁ ଯାଉଛନ୍ତି
ଥିମ
  • ଆପଣ ଯାଉଥିବା ଉତ୍ପାଦର ନାମ ପ୍ରତି ଥର କହେ।
  • ପାସକୀ, ଇମେଲରେ ପଠାଯାଇଥିବା କୋଡ ଓ ମ୍ୟାଜିକ ଲିଙ୍କ, ଆପଣ ଚାହିଁଲେ ହିଁ ପାସୱାର୍ଡ।
  • ପ୍ରତ୍ୟେକ ଉତ୍ପାଦରେ ସେହି ଶାନ୍ତ ପୃଷ୍ଠା, ଲାଇଟ କିମ୍ବା ଡାର୍କ।

ଏହା ଲବିର ଏକ କାମ କରୁଥିବା ନକଲ। ଏହା ଏହି ପୃଷ୍ଠାରେ ଚାଲେ, କିଛି ପଠାଏ ନାହିଁ, ଏବଂ କାହାକୁ ସାଇନ ଇନ କରାଏ ନାହିଁ।

Usher IdentityUsher IdentityAcme Notesକୁ ଯାଉଛନ୍ତି

ପୁଣି ସ୍ୱାଗତ।

ଆପଣଙ୍କ Usher Identity ଆକାଉଣ୍ଟ ଦ୍ୱାରା ସାଇନ ଇନ କରନ୍ତୁ।

ଏଠାରେ ନୂଆ କି?

Usher Identity ଦ୍ୱାରା ସୁରକ୍ଷିତ

ମାନକ, ବାନ୍ଧି ରଖିବା ନୁହେଁ

ଆପଣଙ୍କ ସ୍ଟାକ ପୂର୍ବରୁ ଜାଣିଥିବା ପ୍ରୋଟୋକଲ କହେ।

Usher Identity ପ୍ରଥମେ ଏକ OpenID Connect ପ୍ରଦାତା। ଉପଯୁକ୍ତ ହେଲେ ଆମ SDK ବ୍ୟବହାର କରନ୍ତୁ, କିମ୍ବା ଯେକୌଣସି ଭାଷାରେ ଯେକୌଣସି OIDC ଲାଇବ୍ରେରୀ। ଯଦି ଆପଣ କେବେ ଛାଡ଼ନ୍ତି, ଆପଣଙ୍କ ଆପକୁ ଲୋକଙ୍କୁ ସାଇନ ଇନ କରାଇବାର ଉପାୟ ବଦଳାଇବାକୁ ପଡ଼ିବ ନାହିଁ।

ରିଫ୍ରେସ ଟୋକେନ, ସମ୍ମତି ଓ ସ୍କୋପ ସାମିଲ।
  • OIDC Core · Discovery

    OpenID Connect

    ପ୍ରତି ଏନଭାଇରନମେଣ୍ଟରେ ଏକ ଡିସକଭରି ଡକ୍ୟୁମେଣ୍ଟ, ID ଟୋକେନ ଓ userinfo। ଯେକୌଣସି ପ୍ରମାଣିତ କ୍ଲାଏଣ୍ଟ ଲାଇବ୍ରେରୀ କାମ କରେ।

  • କେବଳ S256

    PKCE ସହ OAuth 2.1

    ପ୍ରତ୍ୟେକ କ୍ଲାଏଣ୍ଟ ପାଇଁ PKCE ସହ ପ୍ରାଧିକରଣ କୋଡ, ପବ୍ଲିକ ହେଉ କି କନଫିଡେନସିଆଲ। କୌଣସି implicit ଫ୍ଲୋ ନାହିଁ, ଟୋକେନ ଏଣ୍ଡପଏଣ୍ଟରେ କୌଣସି ପାସୱାର୍ଡ ନାହିଁ।

  • RS256 · ES256 · EdDSA

    JWKS ଓ କୀ ରୋଟେସନ

    ପ୍ରତ୍ୟେକ ଏନଭାଇରନମେଣ୍ଟ ନିଜ କୀ ଦ୍ୱାରା ସାଇନ କରେ, ଯାହା ତା’ର jwks_uriରେ ପ୍ରକାଶିତ। ସାଇନ ଇନ ଥିବା ଲୋକଙ୍କୁ ବାଧା ନ ଦେଇ ସେଗୁଡ଼ିକ ବଦଳାନ୍ତୁ।

  • RFC 7662 · RFC 7009

    ଇଣ୍ଟ୍ରୋସ୍ପେକସନ ଓ ରିଭୋକେସନ

    ଗୋଟିଏ ଟୋକେନ ଏବେ ବି ବୈଧ କି ନୁହେଁ ପଚାରନ୍ତୁ, କିମ୍ବା ଏବେ ହିଁ ଶେଷ କରନ୍ତୁ। Usher Identity ପ୍ରତ୍ୟେକ ଅନୁରୋଧରେ ନିଜ ସେସନ ଯାଞ୍ଚ କରେ, ତେଣୁ ଗୋଟିଏ ଶେଷ କଲେ ତୁରନ୍ତ ପ୍ରଭାବୀ ହୁଏ।

  • RP-initiated ଓ back-channel ଲଗଆଉଟ

    ଆପଣଙ୍କ ଆପରୁ ସାଇନ ଆଉଟ କରନ୍ତୁ, କିମ୍ବା କୌଣସି ସ୍ଥାନରେ ସେସନ ଶେଷ ହେଲେ Usher Identity ପ୍ରତ୍ୟେକ ଆପକୁ ଜଣାଉ।

  • RFC 9449

    DPoP

    କ୍ଲାଏଣ୍ଟ ପାଖରେ ଥିବା ଏକ କୀ ସହ ଟୋକେନ ବାନ୍ଧନ୍ତୁ, ଯାହାଫଳରେ ଚୋରି ହୋଇଥିବା ଟୋକେନ ଏକାକୀ କୌଣସି କାମରେ ଆସେ ନାହିଁ।

  • WebAuthn

    ପାସକୀ

    ପ୍ରଥମ ଶ୍ରେଣୀର, ଅତିରିକ୍ତ ସୁବିଧା ନୁହେଁ। ଲୋକେ ଆଙ୍ଗୁଠି ଚିହ୍ନ, ମୁହଁ କିମ୍ବା ସିକ୍ୟୁରିଟି କୀ ଦ୍ୱାରା ସାଇନ ଇନ କରନ୍ତି, ଏବଂ ଫିସିଂ କରିବାକୁ କିଛି ନଥାଏ।

  • TOTP

    ଅଥେଣ୍ଟିକେଟର ଆପ

    ଯେକୌଣସି ଅଥେଣ୍ଟିକେଟରରୁ ସମୟ-ଆଧାରିତ କୋଡ, ବ୍ୟାକଅପ କୋଡ ସହ। ଦ୍ୱିତୀୟ ଫ୍ୟାକ୍ଟରକୁ ଇଚ୍ଛାଧୀନ କିମ୍ବା ବାଧ୍ୟତାମୂଳକ କରନ୍ତୁ।

  • ମ୍ୟାଜିକ ଲିଙ୍କ

    ଇନବକ୍ସରୁ ଗୋଟିଏ ଟ୍ୟାପ। ଅଳ୍ପ ସମୟ ପାଇଁ ବୈଧ, ଥରେ ବ୍ୟବହାର ଯୋଗ୍ୟ, ଏବଂ ପଠାଇଥିବା ଏନଭାଇରନମେଣ୍ଟ ସହ ବନ୍ଧା।

  • ଇମେଲ କୋଡ

    ଛଅ ଅଙ୍କ, ଯେଉଁମାନେ ଗୋଟିଏ ଡିଭାଇସରେ ସାଇନ ଇନ କରନ୍ତି ଓ ଅନ୍ୟଟିରେ ଇମେଲ ପଢ଼ନ୍ତି ସେମାନଙ୍କ ପାଇଁ।

  • ସୋସିଆଲ ସାଇନ-ଇନ

    Google, GitHub, Microsoft ଓ Apple। ଏକ ଆକାଉଣ୍ଟ କେବଳ ସେତେବେଳେ ଲିଙ୍କ ହୁଏ ଯେତେବେଳେ ତା’ର ଇମେଲ ପ୍ରମାଣିତ ହୋଇସାରିଛି।

  • ସଂସ୍ଥା ଓ ଟିମ

    ଆପଣଙ୍କ ଆପ ବ୍ୟବହାର କରୁଥିବା ବ୍ୟବସାୟ ପାଇଁ ସଦସ୍ୟ, ଭୂମିକା ଓ ନିମନ୍ତ୍ରଣ।

  • ଶୀଘ୍ର ଆସୁଛି

    SAML

    ଆପଣଙ୍କ ଗ୍ରାହକଙ୍କ କର୍ମଚାରୀ ପରିଚୟ ପ୍ରଦାତାଙ୍କ ସହ ସିଙ୍ଗଲ ସାଇନ-ଅନ।

  • ଶୀଘ୍ର ଆସୁଛି

    SCIM

    ଆପଣଙ୍କ ଗ୍ରାହକଙ୍କ ଡିରେକ୍ଟୋରୀରୁ ପ୍ରୋଭିଜନିଂ ଓ ଡିପ୍ରୋଭିଜନିଂ।

ସାଇନ-ଇନ କିପରି କାମ କରେ

ପାଞ୍ଚଟି ପଦକ୍ଷେପ, ପ୍ରତ୍ୟେକଟି ମାନକ।

ଏହା PKCE ସହ OpenID Connectର ପ୍ରାଧିକରଣ କୋଡ ଫ୍ଲୋ, ପ୍ରତ୍ୟେକ ଗମ୍ଭୀର ପରିଚୟ ପ୍ରଦାତା ବ୍ୟବହାର କରୁଥିବା ସେହି ଫ୍ଲୋ। ସ୍କ୍ରୋଲ କରି ଦେଖନ୍ତୁ।

  1. 01

    ଆପଣଙ୍କ ଆପ ସେମାନଙ୍କୁ ଲବିକୁ ପଠାଏ।

    କେହି Usher Identity ସହ ଜାରି ରଖନ୍ତୁ ବାଛିଲେ, ଆପଣଙ୍କ ଆପ ସେମାନଙ୍କୁ ଆପଣଙ୍କ ଏନଭାଇରନମେଣ୍ଟର ପ୍ରାଧିକରଣ ଏଣ୍ଡପଏଣ୍ଟକୁ ରିଡାଇରେକ୍ଟ କରେ, ଏକ PKCE ଚ୍ୟାଲେଞ୍ଜ ଓ ପରେ ଯାଞ୍ଚ କରିବାକୁ ଥିବା ଏକ state ମୂଲ୍ୟ ସହ।

    GET acme.usherid.com/api/auth/oauth2/authorize
      ?response_type=code
      &client_id=acme_web
      &redirect_uri=https://app.acme.example/callback
      &scope=openid profile email offline_access
      &state=k3Jx…
      &code_challenge=E9Mel…cM
      &code_challenge_method=S256
  2. 02

    ସେମାନେ ନିଜ ଉପାୟରେ ସାଇନ ଇନ କରନ୍ତି।

    ପାସକୀ, ଇମେଲରେ ପଠାଯାଇଥିବା କୋଡ, ମ୍ୟାଜିକ ଲିଙ୍କ, ସୋସିଆଲ ଆକାଉଣ୍ଟ କିମ୍ବା ପାସୱାର୍ଡ: ଲବି କେବଳ ଆପଣଙ୍କ ଏନଭାଇରନମେଣ୍ଟ ଅନୁମତି ଦେଉଥିବା ଉପାୟ ଦିଏ, ଏବଂ ସେମାନେ କେଉଁ ଆପକୁ ଯାଉଛନ୍ତି ସବୁବେଳେ କହେ।

    Usher IdentityUsher IdentityAcmeକୁ ଯାଉଛନ୍ତି

    ପୁଣି ସ୍ୱାଗତ।

    ପାସକୀ ବ୍ୟବହାର କରନ୍ତୁ
    ମୋତେ ଇମେଲରେ କୋଡ ପଠାନ୍ତୁ
  3. 03

    ସେମାନେ ସେୟାର କରିବାକୁ ରାଜି ହୁଅନ୍ତି।

    ପ୍ରଥମ ଥର, ଲୋକେ ଦେଖନ୍ତି ଆପଣଙ୍କ ଆପ କ’ଣ ମାଗୁଛି (ସେମାନଙ୍କ ପ୍ରୋଫାଇଲ, ସେମାନଙ୍କ ଇମେଲ, ସାଇନ ଇନ ରହିବା) ଏବଂ ଥରେ ରାଜି ହୁଅନ୍ତି।

    Acme ଚାହେଁ:

    • ଆପଣଙ୍କ ନାମ ଓ ଫଟୋ ଦେଖିବା
    • ଆପଣଙ୍କ ଇମେଲ ଠିକଣା ଦେଖିବା
    • ଆପଣଙ୍କୁ ସାଇନ ଇନ ରଖିବା
    ବାତିଲ କରନ୍ତୁଅନୁମତି ଦିଅନ୍ତୁ
  4. 04

    Usher Identity ଏକ କୋଡ ଫେରାଇଦିଏ।

    ବ୍ରାଉଜର ଆପଣଙ୍କ ରିଡାଇରେକ୍ଟ URIକୁ ଫେରେ, ପାଞ୍ଚ ମିନିଟ ରହୁଥିବା ଏକ ଥର ବ୍ୟବହାର ଯୋଗ୍ୟ କୋଡ ଓ ଆପଣ ପଠାଇଥିବା state ସହ, ଯାହା ଆପଣଙ୍କ ଆପ ଯାଞ୍ଚ କରେ।

    302 Found
    Location: https://app.acme.example/callback
      ?code=SplxlOBeZQQYbYS6WxSbIA
      &state=k3Jx…
  5. 05

    ଆପଣଙ୍କ ଆପ ଏହାକୁ ଟୋକେନ ସହ ବଦଳାଏ।

    ଆପଣଙ୍କ ସର୍ଭର କୋଡ ଓ PKCE verifierକୁ ଟୋକେନ ଏଣ୍ଡପଏଣ୍ଟକୁ ପଠାଏ। ଫେରି ଆସେ ସେମାନେ କିଏ କହୁଥିବା ଏକ ID ଟୋକେନ, ଆପଣଙ୍କ API ପାଇଁ ଏକ ଆକ୍ସେସ ଟୋକେନ, ଏବଂ ସାଇନ ଇନ ରହିବା ପାଇଁ ଏକ ରିଫ୍ରେସ ଟୋକେନ।

    POST acme.usherid.com/api/auth/oauth2/token
      grant_type=authorization_code&code=Splx…
      &code_verifier=dBjftJeZ4CVP…
    
    {
      "token_type": "Bearer",
      "access_token": "eyJhbGciOiJSUzI1NiIs…",
      "id_token": "eyJhbGciOiJSUzI1NiIs…",
      "refresh_token": "8xLOxBtZp8…",
      "expires_in": 600
    }

ଡିଜାଇନରୁ ହିଁ ପୃଥକ

ପ୍ରତ୍ୟେକ ଏନଭାଇରନମେଣ୍ଟ ନିଜସ୍ୱ ଏକ ଅଟ୍ଟାଳିକା।

ଆପଣଙ୍କ ପ୍ରୋଡକ୍ସନ ଓ ଡେଭେଲପମେଣ୍ଟ ଏନଭାଇରନମେଣ୍ଟ, ଏବଂ ଅନ୍ୟ ପ୍ରତ୍ୟେକ ଗ୍ରାହକଙ୍କର, ଗୁରୁତ୍ୱପୂର୍ଣ୍ଣ କିଛି ବାଣ୍ଟନ୍ତି ନାହିଁ। ଗୋଟିଏରେ ଭୁଲ ହେଲେ ତାହା ଅନ୍ୟକୁ ପଢ଼ିପାରେ ନାହିଁ, ତା’ ପାଇଁ ସାଇନ କରିପାରେ ନାହିଁ କିମ୍ବା ସେଥିରେ ସାଇନ ଇନ କରିପାରେ ନାହିଁ।

ନିଜର Postgres ସ୍କିମା
ବାଣ୍ଟିଥିବା ଟେବୁଲରେ ଟେନାଣ୍ଟ କଲମ ନୁହେଁ: ଏନଭାଇରନମେଣ୍ଟ ପାଇଁ ତିଆରି ଏକ ସ୍କିମା, ଏବଂ ସେଥିରେ ଅନ୍ୟ କିଛି ନାହିଁ।
ନିଜର ସାଇନିଂ କୀ
ଗୋଟିଏ ଏନଭାଇରନମେଣ୍ଟର ଟୋକେନ କେବେ ଅନ୍ୟର କୀ ବିରୁଦ୍ଧରେ ଯାଞ୍ଚ ହୋଇପାରେ ନାହିଁ।
ନିଜର ସିଲ କରାଯାଇଥିବା ସିକ୍ରେଟ
ଏନଭାଇରନମେଣ୍ଟର ନିଜ ଡାଟା କୀ ଦ୍ୱାରା ସିଲ କରାଯାଇଥିବା, ଯେଉଁ କୀ ନିଜେ ଏକ ମାଷ୍ଟର କୀ ଦ୍ୱାରା ଆବୃତ।
ନିଜର ହୋଷ୍ଟ
ଇସୁଅରଗୁଡ଼ିକ Usherର ସାଇଟ ଓ Consoleଠାରୁ ଅଲଗା ଡୋମେନରେ ରହନ୍ତି, host-only କୁକି ସହ।

usheridentity.com

ସାଇଟ, Usher Identity Console, Usher Identity ଆକାଉଣ୍ଟ

*.usherid.com

ପ୍ରତି ଏନଭାଇରନମେଣ୍ଟରେ ଗୋଟିଏ ଇସୁଅର, ଏକ ଅଲଗା ଡୋମେନରେ

ଏନଭାଇରନମେଣ୍ଟ

ଉପଯୋଗକର୍ତ୍ତା, ସେସନ ଓ ଟୋକେନ ଏହି ଏନଭାଇରନମେଣ୍ଟ ପାଇଁ ତିଆରି ଏକ ସ୍କିମାରେ ରହନ୍ତି। କ୍ୱେରୀଗୁଡ଼ିକ ସେହି ସ୍କିମାରେ ଚାଲେ, ଟେନାଣ୍ଟ କଲମ ଥିବା ବାଣ୍ଟିଥିବା ଟେବୁଲରେ କେବେ ନୁହେଁ।

Acme ପ୍ରୋଡକ୍ସନର ସିଲ କରାଯାଇଥିବା Google କ୍ଲାଏଣ୍ଟ ସିକ୍ରେଟକୁ Northwind ପ୍ରୋଡକ୍ସନକୁ କପି କରନ୍ତୁ।

ଡେଭେଲପରଙ୍କ ପାଇଁ

ଆପଣଙ୍କ ପ୍ରଥମ ସାଇନ‑ଇନ, ତିନି ଉପାୟରେ।

SDK ଆସିଲେ ତାକୁ ଯୋଡ଼ନ୍ତୁ, ଆପଣ ପୂର୍ବରୁ ଭରସା କରୁଥିବା OIDC ଲାଇବ୍ରେରୀ ବ୍ୟବହାର କରନ୍ତୁ, କିମ୍ବା ଡିସକଭରି ଡକ୍ୟୁମେଣ୍ଟ ପଢ଼ି ଆରମ୍ଭ କରନ୍ତୁ। ତଳେ ସବୁ ସେହି ଗୋଟିଏ ପ୍ରୋଟୋକଲ।

app/layout.tsx · app/page.tsxSDK ସହ ଆସୁଛି
// app/layout.tsx
import { UsherProvider } from '@usher/nextjs'

export default function RootLayout({ children }: { children: React.ReactNode }) {
  return (
    <html lang="en">
      <body>
        <UsherProvider>{children}</UsherProvider>
      </body>
    </html>
  )
}

// app/page.tsx
import { SignIn, UserButton, currentUser } from '@usher/nextjs'

export default async function Page() {
  const user = await currentUser()
  return user ? <UserButton /> : <SignIn />
}

ନିଜେ ଚଲାନ୍ତୁ

ଆପଣଙ୍କ ସର୍ଭର, ଆପଣଙ୍କ କୀ।

Usher Identityକୁ ଏକ ସେବା ଭାବେ ବ୍ୟବହାର କରନ୍ତୁ, କିମ୍ବା ସେହି ପ୍ଲାଟଫର୍ମକୁ ଆପଣଙ୍କ ନିଜ ସର୍ଭରରେ, ଆପଣଙ୍କ ନିଜ କୀ ଓ ନିଜ ଡାଟାବେସ ସହ ଚଲାନ୍ତୁ।

  • Docker

    ଗୋଟିଏ Compose ଫାଇଲ: ଆପଗୁଡ଼ିକ, Postgres, Valkey, Caddy ଏଜ ଓ ଇଗ୍ରେସ ପ୍ରକ୍ସି। କଣ୍ଟେନରଗୁଡ଼ିକ କୌଣସି ନୂଆ ଅଧିକାର ବିନା ଓ capabilities ହଟାଇ ଚାଲନ୍ତି।

  • Ubuntu

    ଏକ ସାଧାରଣ Ubuntu ସର୍ଭର ଯଥେଷ୍ଟ। Caddy TLS ସମାପ୍ତ କରେ, ଏବଂ ସିକ୍ରେଟଗୁଡ଼ିକ କଣ୍ଟେନରକୁ ଦିଆଯାଉଥିବା ଫାଇଲ, କେବେ ଇମେଜ ଭିତରେ ରଖାଯାଏ ନାହିଁ।

  • Postgres

    Postgres ସବୁକିଛି ରଖେ, ପ୍ରତି ଏନଭାଇରନମେଣ୍ଟରେ ଗୋଟିଏ ସ୍କିମା। ଏହା ଓ Valkey ଏପରି ଏକ ନେଟୱର୍କରେ ଅଛନ୍ତି ଯାହାର ଇଣ୍ଟରନେଟକୁ କୌଣସି ରାସ୍ତା ନାହିଁ।

Usher Identityର ଏକ ଚେକଆଉଟରୁ
# on an Ubuntu server with Docker Engine and the Compose plugin
bash infra/scripts/setup-env.sh --prod \
  --domain usher.example --tenant-domain usherid.example

docker compose -f compose.yaml -f compose.prod.yaml \
  --profile core --profile apps --profile edge up -d --wait

pnpm db:migrate   # applies the database migrations

ସମ୍ପୂର୍ଣ୍ଣ ସେଲ୍ଫ-ହୋଷ୍ଟିଂ ଗାଇଡ ଆସୁଛି। ଉପରର କମାଣ୍ଡଗୁଡ଼ିକ ତା’ର ରୂପରେଖ।

ଆପଣଙ୍କ ଉପଯୋଗକର୍ତ୍ତାଙ୍କୁ ଭିତରକୁ ନିଅନ୍ତୁ।

ଏକ ୱର୍କସ୍ପେସ ଓ ଏକ ପ୍ରୋଜେକ୍ଟ ତିଆରି କରନ୍ତୁ, ଏବଂ ଆପଣଙ୍କ ପ୍ରଥମ ଏନଭାଇରନମେଣ୍ଟ ନିଜର ଇସୁଅର, କୀ ଓ ଲବି ସହ ଆସେ।

ଥରେ ସାଇନ ଇନ କରନ୍ତୁ। ସବୁଠି ସ୍ୱାଗତ।