# IRPCLogin.GetAuthenticationPlugins

Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Vault API](https://developer.m-files.com/APIs/gRPC-API/vault/index.md) > [Login and sessions](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLogin/index.md)

HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLogin/GetAuthenticationPlugins/

Badges: `Vault API / core` `session` `no session`

Lists the authentication plug-ins installed on the server, without their configurations.

- **Service:** [Login and sessions](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLogin/index.md) `MFiles.IRPCLogin`
- **gRPC method:** `/MFiles.IRPCLogin/GetAuthenticationPlugins`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-authentication-plugins`
- **Request:** [`GetAuthenticationPluginsRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLogin/GetAuthenticationPlugins/index.md#request)
- **Response:** [`GetAuthenticationPluginsResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLogin/GetAuthenticationPlugins/index.md#response)
- **Book and level:** Vault API, core
- **Kind:** session
- **Session:** Not needed: the call can be made before logging in.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)

<a id="remarks"></a>

## Remarks

Needs no session. `is_default` is always false and no configurations are returned; use
[GetAuthenticationConfiguration](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLogin/GetAuthenticationConfiguration/index.md) to get
the configuration a login needs. Leave `remote_can_be_null` unset.

<a id="request"></a>

## Request: GetAuthenticationPluginsRequest

> Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page.

| Field | Type | Description |
|---|---|---|
| `remote_can_be_null` | [`ServerAddress`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ServerAddress/index.md) | If set, specifies the address of the remote server. |
| `remote_can_be_null.network_address` | `string` | The network address (name) of the server. |
| `remote_can_be_null.endpoint` | `string` | The endpoint of the server. |
| `remote_can_be_null.protocol_sequence` | `string` | The protocol sequence of the server. |
| `vault_guid` | `string` | If not empty, specifies the GUID of the target vault. |
| `scope_independent_only` | `bool` | If true, only scope-independent plugins are returned. |

<a id="response"></a>

## Response: GetAuthenticationPluginsResponse

> Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page.

| Field | Type | Description |
|---|---|---|
| `plugins[]` | repeated [`PluginInfo`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.PluginInfo/index.md) | Receives the plugin information. |
| `plugins[].is_default` | `bool` | True if this is the default configuration. |
| `plugins[].is_scope_independent` | `bool` | True if the plug-in can be used without a configuration scope. |
| `plugins[].name` | `string` | The configuration's name. Send it as `PluginData.plugin_name`. |
| `plugins[].assembly_name` | `string` | The plug-in's implementation, for example `MFiles.AuthenticationProviders.OAuth`. |
| `plugins[].bridge_class_name` | `string` | Internal to the server. |
| `plugins[].system_configuration` | [`NamedValueArray`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.NamedValueArray/index.md) | Where the configuration comes from: `Scope` (send as `PluginData.configuration_scope`) and, for vault-stored configurations, `VaultGUID`. |
| `plugins[].system_configuration.value[]` | repeated [`NamedValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.NamedValue/index.md) | An array of the NamedValue structures. |
| `plugins[].plugin_configuration` | [`NamedValueArray`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.NamedValueArray/index.md) | The plug-in's client-side settings. For an OAuth plug-in these include `AuthorizationEndpoint`, `TokenEndpoint`, `ClientID`, `Scope` and `RedirectURI`. |
| `plugins[].plugin_configuration.value[]` | repeated [`NamedValue`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.NamedValue/index.md) | An array of the NamedValue structures. |

<a id="related"></a>

## Related methods

- [GetAuthenticationConfiguration](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLogin/GetAuthenticationConfiguration/index.md): Tells a client, before login, whether to authenticate with an authentication plug-in (single sign-on) and returns the plug-in's client-side configuration.
