API Stability Long-Term

The findIdentityProvider() GraphQL query field is used to get information on an identity provider for a particular user account, based on the account's email address.

Similar to this query field, there's the query, identityProvider() to get information on a specific identity provider. Related to both queries is identityProviders() to get a list of providers. There's also the deleteIdentityProvider() mutation field to delete an identity provider from the system.

For more information on identity providers, see the Authentication and identity providers page in the main documentation.

Syntax

graphql
findIdentityProvider(
     email: string!
   ): IdentityProviderAuth

There is no special input datatype for this query field. You'll need to provide the email address for the account using the email parameter. For the results, you can request the ID and name of the provider, but of more interest will be the authentication method, which will include a host of information (see the Return Datatype section).

Example

The example below queries LogScale with this query field:

Raw
graphql
query {
  findIdentityProvider(email: "bob@company.com") {
    id, name, authenticationMethod
  }
}
Mac OS or Linux (curl)
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d @- << EOF
{"query" : "query {
  findIdentityProvider(email: \"bob@company.com\") {
    id, name, authenticationMethod
  }
}"
}
EOF
Mac OS or Linux (curl) One-line
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d @- << EOF
{"query" : "query {
  findIdentityProvider(email: \"bob@company.com\") {
    id, name, authenticationMethod
  }
}"
}
EOF
Windows Cmd and curl
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql ^
    -H "Authorization: Bearer $TOKEN" ^
    -H "Content-Type: application/json" ^
    -d @'{"query" : "query { ^
  findIdentityProvider(email: \"bob@company.com\") { ^
    id, name, authenticationMethod ^
  } ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "query {
  findIdentityProvider(email: \"bob@company.com\") {
    id, name, authenticationMethod
  }
}"
}'
    "$YOUR_LOGSCALE_URL/graphql"
Perl
perl
#!/usr/bin/perl

use HTTP::Request;
use LWP;

my $TOKEN = "TOKEN";

my $uri = '$YOUR_LOGSCALE_URL/graphql';

my $query = "query {
  findIdentityProvider(email: \"bob@company.com\") {
    id, name, authenticationMethod
  }
}";
$query =~ s/\n/ /g;
my $json = sprintf('{"query" : "%s"}',$query);
my $req = HTTP::Request->new("POST", $uri );

$req->header("Authorization" => "Bearer $TOKEN");
$req->header("Content-Type" => "application/json");

$req->content( $json );

my $lwp = LWP::UserAgent->new;

my $result = $lwp->request( $req );

print $result->{"_content"},"\n";
Python
python
#! /usr/local/bin/python3

import requests

url = '$YOUR_LOGSCALE_URL/graphql'
mydata = r'''{"query" : "query {
  findIdentityProvider(email: \"bob@company.com\") {
    id, name, authenticationMethod
  }
}"
}'''

resp = requests.post(url,
                     data = mydata,
                     headers = {
   "Authorization" : "Bearer $TOKEN",
   "Content-Type" : "application/json"
}
)

print(resp.text)
Node.js
javascript
const https = require('https');

const data = JSON.stringify(
    {"query" : "query {
  findIdentityProvider(email: \"bob@company.com\") {
    id, name, authenticationMethod
  }
}"
}
);


const options = {
  hostname: '$YOUR_LOGSCALE_URL',
  path: 'graphql',
  port: 443,
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Content-Length': data.length,
    Authorization: 'BEARER ' + process.env.TOKEN,
    'User-Agent': 'Node',
  },
};

const req = https.request(options, (res) => {
  let data = '';
  console.log(`statusCode: ${res.statusCode}`);

  res.on('data', (d) => {
    data += d;
  });
  res.on('end', () => {
    console.log(JSON.parse(data).data);
  });
});

req.on('error', (error) => {
  console.error(error);
});

req.write(data);
req.end();

Returned Datatype

With the returned datatype, you can request the ID and name of the provider. You can also get the authentication method, which uses a datatype that actually implements the OidcIdentityProviderAuth datatype. Through that you can get a good bit of information on authentication (e.g., the authorization type, a URL and endpoint, the client ID, etc.). The table below lists the parameters, but you'll click on the links here for sub-parameters.

Table: IdentityProviderAuth

ParameterTypeRequiredDefaultStabilityDescription
Some arguments may be required, as indicated in the Required column. For return datatypes, this indicates that you must specify which fields you want returned in the results.
Table last updated: Sep 25, 2024
authenticationMethodAuthenticationMethodAuthyes Long-TermThe authentication method of the authentication provider. See AuthenticationMethodAuth.
idstringyes Long-TermThe unique identifier of the authentication provider.
namestringyes Long-TermThe name of the authentication provider.